数据库批次更新方法、数据还原日志产生方法与存储装置与流程

文档序号:12733752阅读:236来源:国知局
数据库批次更新方法、数据还原日志产生方法与存储装置与流程

本公开内容涉及一种数据库更新方法、数据还原方法与存储器存储装置,且特别涉及一种交错式的数据库批次更新方法。



背景技术:

传统上,计算机所使用的数据库是将数据存储在硬盘中。而此处的硬盘是指使用坚硬的旋转碟片为基础的非易失性存储装置,其是利用距离磁性表面距离很近的磁头,在平整的磁性表面存储和检索数字数据,并在写入时由电磁流来改变极性方式被电磁流写到磁盘上。信息也可以通过相反的方式读取,例如磁头经过记录数据的上方时磁场导致线圈中电气信号的改变。硬盘中包括有一至数片高速转动的磁盘以及放在致动器悬臂上的磁头。因此,硬盘的读写虽然可以以任意顺序读取硬盘中的数据,然而在磁头搜寻所要存取的数据位置并加以存取时,需要经历搜寻时间(seek time)、转动时间(rotation time)以及存取时间(access time)。

数据库每次执行的指令都必须对直接硬盘中数据更新,也就是说,每执行一次指令硬盘的磁头都必须实体的位移到所欲存取的数据所在的位置,因此传统上数据库的存取速率是非常受限于硬盘存取的效率。

如此一来,要如何加速数据库的存取速率便成了本领域重要的课题之一。其中,硬盘存取效率提高的方法可以例如是采用连续存取(sequential access)的方式。由于每次存取数据都必须将致动器悬臂上的磁头位移到数据所在的位置,倘若将每次存取的数据所在的位置缩小,应能够大量的减少磁头实际位移时所花费的搜寻时间与转动时间,继而能够增加数据库存取的效率。



技术实现要素:

有鉴于此,本公开内容的多个实施例提供一种数据库批次更新方法、数据还原日志产生方法与存储器存储装置。其中所述的数据库批次更新方法能够提高存取数据库时硬盘的存取效率,进而提升数据库的存取效率。此外, 在数据库需要进行还原时也能够以本发明所提供的数据还原日志产生方法来进行数据还原。

依据本公开内容的多个实施例提供一种数据库批次更新方法,包括以下步骤。依序接收多个数据存取指令,这些数据存取指令要求从第一存储器中对应存取至少一数据。判断所接收到的数据存取指令是属于第一类型指令或第二类型指令。将属于第一类型指令的数据存取指令存储在第二存储器中。从第三存储器中存取属于第二类型指令的数据存取指令所对应的至少一数据。以第一存储器的物理地址,顺序地依据存储在第二存储器中的数据存取指令来存取第一存储器,其中该至少一数据对应于第一存储器的至少一第一存储分区。第三存储器在依序接收数据存取指令前是镜像于第一存储器,其中第一存储器中连续物理地址的存取速率大于第一存储器中随机物理地址存取速率,而第三存储器中连续物理地址的存取速率大于第三存储器中随机物理地址的存取速率。

依据本公开内容的多个实施例提供一种数据还原日志产生方法,至少包括以下步骤。接收数据存取指令,此数据存取指令要求从第一存储器中对应存取数据。将此数据存取指令存储在第二存储器中,并且产生对应此数据存取指令的数据重做日志。依据存储在第二存储器中的数据存取指令来存取第一存储器,并且产生对应此数据存取指令的数据还原日志,其中此数据存取指令所要求存取的数据对应于第一存储器的至少一第一存储分区的其中之一,其中此第一存储器中连续物理地址的存取速率大于第一存储器中随机物理地址的存取速率。

依据本公开内容的多个实施例提供一种存储器存储装置,包括第一存储器、第二存储器、第三存储器与处理单元。第一存储器属于非易失性存储器。第二存储器属于易失性存储器。第三存储器属于非易失性存储器。上述处理单元操作性耦接第一存储器、第二存储器以及第三存储器,用以接收数据存取指令,此数据存取指令要求从第一存储器中对应存取数据。处理单元还用以判断数据存取指令是第一类型指令或第二类型指令,并将属于第一类型指令的数据存取指令存储在第二存储器中,且依据属于第二类型指令的数据存取指令从第三存储器中存取其所对应的数据。处理单元更以第一存储器的物理地址,顺序地依据存储在第二存储器中的数据存取指令来存取第一存储器。数据存取指令所要求存取的数据对应于至少一第一存储分区。第三存储器在 处理单元依序接收数据存取指令前是镜像于第一存储器。第一存储器与第三存储器中连续物理地址的存取速率大于第一存储器与第三存储器中随机物理地址存取速率。

基于上述,在依据本公开内容的多个实施例中,使用数据交错的方式利用不同的存储器分别执行不同类型的数据存取指令。如此一来,在存储器连续存取的过程中不会被需要即时回传数据的数据存取指令中断连续存取的过程,能够有效的维持存储器连续存取的特性,并且提高数据库存取的效能。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1是依据本公开内容的一实施例的存储器存储装置的示意图。

图2(a)-2(f)是依据本公开内容的一实施例的数据库批次更新的示意图。

图3是依据本公开内容的一实施例的数据库批次更新的流程图。

图4是依据本公开内容的一实施例的数据交错存取的示意图。

图5(a)和图5(b)是依据本公开内容的一实施例从第三存储器中存取属于第二类型指令的数据存取指令所对应的数据的流程示意图。

图6是依据本公开内容的一实施例的数据还原日志产生方法的示意图。

图7是依据本公开内容的一实施例的数据还原日志产生方法的流程图。

【符号说明】

10:存储器存储装置

601~607:时间点

D1:第一存储器

d11~d1n:第一存储器的存储分区

D2:第三存储器

d21~d2n:第三存储器的存储分区

R1:第二存储器

r11~r1n:第二存储器的存储分区

R2:第四存储器

PU:处理单元

S301、S303、S305、S307、S309:数据库批次更新方法的步骤

S701、S703、S705:数据还原日志产生方法的步骤

T1、T2、T3:时间点

u1、u2、u3:数据存取指令

具体实施方式

图1是依据本公开内容的一实施例的存储器存储装置的示意图。

请参照图1,存储器存储装置10包括第一存储器D1、第二存储器R1、第三存储器D2、第四存储器R2以及处理单元PU。处理单元PU是操作性耦接(operatively couple to)第一存储器D1、第二存储器R1、第三存储器D2以及第四存储器R2,并且用以控制存储器存储装置10的整体运作。处理单元PU例如是微控制器(micro-controller)、嵌入式控制器(embedded controller)、中央处理器(central processing unit,CPU)或类似的元件,而本公开内容不在此限制处理单元PU的种类。

第一存储器D1与第三存储器D2是属于非易失性存储器,在电源关闭时存储在其中的数据并不会自动消失。此外,第一存储器D1与第三存储器D2可具有依序存取功能的存储器,也就是第一存储器D1与第三存储器D2在物理地址上的连续存取速率是大于随机存取速率。在依据本公开内容的一实施例中,第一存储器D1与第三存储器D2可例如是硬盘、磁盘、光盘或磁带等,本公开内容不在此限。第二存储器R1与第四存储器R2是属于易失性存储器,在电源关闭时存储在其中的数据会自动消失而无法保留。此外,第二存储器R1与第四存储器R2皆为随机存取存储器,在依据本公开内容的一实施例中,第二存储器R1与第四存储器R2可例如是常用于中央处理器快取存储器,例如静态随机存取存储器(SRAM)。在本公开内容的另一实施例中,第二存储器R1与第四存储器R2也可例如是动态随机存取存储器(DRAM)。或者,在依据本公开内容的一实施例中,第二存储器R1为动态随机存取存储器且第四存储器R2为静态随机存取存储器。简言之,上述的存储器在符合所要求的挥发性条件与存取速率条件下,本公开内容并不加以限制实作时实际的存储器类型。

图2包括图2(a)到图2(f)是依据本公开内容的一实施例的数据库批次更新的流程示意图。图3是本公开内容的一实施例的数据库批次更新的流程图。

请先参照图2(a),在依据本公开内容的一实施例中,第一存储器D1分为 多个存储分区d11~d1n,其中在存储分区d13中存储有数据内容为(“A”,1,93)的数据。第三存储器D2是相同且可取代于第一存储器D1,至少包括与第一存储器D1个数相同且一一对应的存储分区d21~d2n,且第三存储器D2的存储分区d23中也存储有数据内容为(“A”,1,93)的数据。在依据本公开内容的一实施例中,第二存储器R1至少包括与第一存储器D1个数相同且一一对应的存储分区r11~r1n。

在依据本公开内容的一实施例中,上述第一存储器D1或第三存储器D2的存储分区的顺序即是相当于在所属的存储器中的物理定址的顺序。举例来说,第一存储器D1若为硬盘,则其存储分区d12中所包含的物理磁区的物理定址是大于存储分区d11中所包含的物理磁区的物理定址,且同时小于存储分区d13中所包含的物理磁区的物理定址。另需注意的是,上述的存储分区并非是所属存储器的最小写入单位,举例来说,第一存储器D1若为硬盘,则其一个存储分区可例如是包括一个磁区、两个磁区或更多的磁区等;而由于第二存储器R1为随机存取存储器,则其一个存储分区可例如是包括一个物理页面、三个物理页面或一个物理区块等,且第二存储器R1的存储分区与第一存储器D1或第三存储器D2中存储分区的对应关系可以例如是藉由杂凑表来建立,本公开内容不在此限。

请接着参照图2(b)与图3,在处理单元(未绘示)接收到数据存取指令后(步骤S301),会判断接收到的数据存取指令是属于第一类型指令或第二类型指令(步骤S303)。在依据本公开内容的一实施例中,第一类型指令可例如是写入、修改或删除指令等的数据更新指令,也就是说,上述的第一类型指令是指需对所存储的数据作处理,但不需要即时传回数据内容的指令;第二类型指令可例如是读取指令,换句话说,第二类型指令是指在接收后需传回数据内容的指令。随后,属于第一类型指令,也就是无须即时回传数据内容的数据存取指令会被存储在第二存储器R1的存储器队列中(步骤S305)。

举例来说,如图2(b)所示,倘若处理单元依序接收到存取存储分区中d13中(“A”,1,93)数据的写入指令i(“B”,2,0)与修改指令u(“A”=>“C”)后,上述的两数据更新指令会依序被存储在第二存储器R1中存储分区r13的存储器队列中。此外,倘若上述所接收到的数据存取指令是属于读取指令或第二类型指令,则其不会被存储在第二存储器R1中。更明确地说,在依据本公开内容的一实施例中,针对属于读取指令或第二类型指令的数据存取指令 会使用第三存储器D2来执行存取的操作,详细的操作过程将在以下详述。值得一提的是,在依据本公开内容的一实施例中,上述的存储器队列可以例如采用先进先出(First-In-First-Out,FIFO)的方式来存取。

在经过预定的时间之后,处理单元会依循第一存储器D1的存储分区顺序,来依据第二存储器R1中所存储的数据存取指令存取第一存储器D1(步骤S309)。在依据本公开内容的一实施例中,上述预定的时间可例如是接收到预先设定数量的数据存取指令,或是预先设定的时间间隔等,本公开内容不在此限制。

以依据本公开内容的一实施例详细来说,第一存储器D1中的存储分区d11会首先被存取,处理单元会检视第二存储器R1的存储分区r11的存储器队列中是否存储有数据存取指令。倘若第二存储器R1的存储分区r11的存储器队列中存储有数据存取指令,则依据所存储的数据存取指令来存取第一存储器D1的存储分区d11。倘若第二存储器R1的存储分区r11的存储器队列中没有存储数据存取指令,则会接着存取第一存储器D1的存储分区d12,并且重复上述的操作来顺序地存取第一存储器D1的存储分区。在依据本公开内容的一实施例中,在存取完第一存储器D1的存储分区d1n后,会反向的按照存储分区的顺序继续存取第一存储器D1的存储分区d1n-1,以维持第一存储器D1的连续存取。在本公开内容的另一实施例中,在存取完第一存储器D1的最后一个存储分区d1n后,也可以回到存储分区d11重新重复上述正向依序存取的操作,本公开内容并不在此限。以下将以第一存储器D1的存储分区d13为例,来说明依据第二存储器R1中所存储的数据存取指令来存取第一存储器D1的方法。

请参照图2(c)~图2(e),如图2(c)所示,第二存储器R1的存储分区r13的存储器队列中存储有写入指令i(“B”,2,0)与修改指令u(“A”=>“C”)。第一存储器D1的存储分区d13中所存储的数据会先被载入至第四存储器R2中,接着如图2(d)所示,会按照存入存储分区r13的存储器队列的顺序,先进先出地来依序执行上述的写入指令i(“B”,2,0)与修改指令u(“A”=>“C”)以更新第四存储器R2中的数据。在执行过上述的指令过后,第四存储器R2中的数据会被更新为(“C”,1,93)与(“B”,2,0)。随后,如图2(e)所示,第四存储器R2中的数据会被提交写回,也就是将其所存储的数据(“C”,1,93)与(“B”,2,0)写入第一存储器D1的存储分区d13中,即完成存取第一 存储器D1的存储分区d13的操作。在依据本公开内容的一实施例中,完成存储分区d13的存取后,接着会存取存储分区d14的数据。

接着回到图3中的步骤S303,在依据本公开内容的一实施例中,倘若处理单元判断所接收到的数据存取指令属于第二类型指令,则上述的数据存取指令并不会被存储在第二存储器R1中。在步骤S307,处理单元会从第三存储器D2中存取所接收到属于第二类型指令的数据存取指令所对应的数据。因此,在理想的情况下,第三存储器D2中所存储的数据应是同步于第一存储器D1中所存储的数据。

值得一提的是,在上述数据库批次更新方法中,第三存储器是用于属于第二类型指令的数据存取指令的即时存取,第一存储器是用于依据第二存储器中属于第一类型指令的数据存取指令来依序存取,但本公开内容不在此限。例如,在依据本公开内容的一实施例中,第一存储器与第三存储器也可以是用数据交错存取的方式在时间上交错的交互使用。

请再参照图2(e)与图2(f),在依据本公开内容的一实施例中,如图2(e)所示,在更新完存储分区d13的数据后,第三存储器D2的存储分区d23仍然维持相同(“A”,1,93)的数据内容尚未被更新。藉由前述实施例所描述的方法,在经过预定的时间后,处理单元会以第三存储器D2的物理地址为序,顺序地更新第三存储器D2,而当存储分区r13的存储器队列中的i(“B”,2,0)与u(“A”=>“C”)已被使用上述的方法来存取第三存储器D2完成后,便会将存储分区r13的存储器队列中的第一类型指令删除,如图2(f)所示。

图4是依据本公开内容的一实施例的数据交错存取的示意流程图。也就是说,如图4所示,在T1与T3时间,第三存储器是用于属于第二类型指令的数据存取指令的即时存取,第一存储器是用于依据第二存储器中属于第一类型指令的数据存取指令来依序存取;在T2与T4时间,第一存储器是用于属于第二类型指令的数据存取指令的即时存取时,第三存储器则是用于依据第二存储器中属于第一类型指令的数据存取指令来依序存取。在依据第二存储器R1中的特定数据存取指令来存取第一存储器D1或第三存储器D2时,处理单元更会记录上述的特定数据存取指令已被用以存取过第一存储器D1或第三存储器D2。倘若上述的特定数据存取指令已被用于存取第一存储器D1与第三存储器D2,表示上述的特定数据存取指令已不需要再被使用,处理单元会将上述的特定数据存取指令从第二存储器R1中删除。

图5包括图5(a)与图5(b),是依据本公开内容的一实施例从第三存储器中存取属于第二类型指令的数据存取指令所对应的数据的流程示意图。

请同时参照图4与图5,在依据本公开内容的一实施例中,处理单元接收到要求读取第一存储器D1中的存储分区d1n-1的数据的读取指令。由于上述的读取指令是属于第二类型指令的数据存取指令,因此处理单元会依据所接收到的读取指令来对应地读取第三存储器D2的存储分区d2n-1的数据。

以图5(a)中所绘示的示意图为例,由于第一存储器D1与第三存储器D2是时间上交错的交互使用,因此在接收到存取存储分区d1n-1中数据的更新指令与接收到存取存储分区d1n-1中数据的读取指令的两个时间点之间,存储分区d1n-1或存储分区d2n-1皆有可能未被存取。如此一来,当处理单元欲依据所接收到的读取指令来读取第三存储器D2的存储分区d2n-1的数据时,会先检视第二存储器R1的存储分区r1n-1中的存储器队列是否存有尚未用以存取第三存储器D2的数据更新指令。若有,如图5(b)所示,存储分区d2n-1的数据(“Z”,0,7)会先被载入至第四存储器R2中,并且依第二存储器R1的存储分区r1n-1的存储器队列中所存有的数据存取指令依序来将载入至第四存储器R2中的数据更新为最新数据,尔后才会将第四存储器R2中的此笔最新数据回传以响应所接收到的读取指令。

在本实施例中,最后回传以响应所接收到读取指令的数据为(“Z”,0,7)与(“A”,2,2)。另一方面,倘若第二存储器R1的存储分区r1n-1中的存储器队列并不存有尚未用以存取第三存储器D2的数据存取指令,则表示存储分区d2n-1中的数据为最新数据,可直接将d2n-1中的数据(“Z”,0,7)用以响应所接收的读取指令。

简言之,在依据本公开内容的一实施例中所提供的数据库批次更新方法,是使用第一存储器D1与第三存储器D2分开负责所接收到属于第一类型指令与第二类型指令的两种数据存取指令。其中属于第一类型指令的数据存取指令要求对数据库中的数据进行更新,但不需要即时回传数据;属于第二类型指令的数据存取指令是要求即时回传数据库中的数据,而不要求进行数据更新。使用本公开内容实施例的数据库批次更新方法,能够维持第一存储器D1或第三存储器D2(例如:硬盘)的连续存取较快的特性,而不被需要即时回传数据的数据存取指令干扰其连续存取的过程。同时,在本公开内容的实施例中,在接收到属于第一类型指令的数据存取指令后并不会立即的从第一存储 器D1或第三存储器D2中存取数据,而是会先将所接收到属于第一类型指令的数据存取指令存入第二存储器R1的存储器队列之中。

当数据库在执行一笔交易包括数个数据存取指令的时候,交易过程中有可能随时被用户中止要求回到交易前的状态,或是交易过程中数据库程序出了问题,程序重启后必须在回复后回到正常状态。那么,若交易已经提交,则交易中所有执行的指令必须都被正常完成,而若交易尚未提交,则交易中所有执行的指令必须回到执行前的状态。而要做到这些功能,数据库需要在执行过程中记录数据重做日志(redo logging)与数据还原日志(undo logging)。其中,数据还原日志需要用到数据的前图像,也就是数据更新前的状态,而本公开内容的实施例中的数据库批次更新方法在执行前端的请求的指令时,是将属于第一类型指令的数据存取指令存储在存储器队列中即视为完成,这中间过程中数据都是保存在第一存储器D1或第三存储器D2中没有被存取到,不会有机会取得数据前的状态也就是数据前图像,因此没办法产生数据还原日志,故无法执行传统数据库的数据还原方法,也就是无法同时地产生数据重做日志与数据还原日志。以下将配合所需图式说明本公开内容的一实施例所提出的数据还原日志产生方法与数据还原方法,其可有效的用于本公开内容的实施例所提出的数据库批次更新方法。

图6是依据本公开内容的一实施例的数据还原日志产生方法的流程示意图。图7是依据本公开内容的一实施例的数据还原日志产生方法的流程图。

请接着参照图6与图7,在依据本公开内容的一实施例中,处理单元接收数据存取指令包括数据更新指令u1:i(“B”2,0)、u2:u(“A”=>“Z”)与u3:u(“B”=>“A”)(步骤S701)。其中u1、u2与u3皆属于第一类型指令,因此会分别接收到的时间点601、602与603被存入所对应的第二存储器R1中的存储器分区的存储器队列当中(步骤S703),其中将属于第一类型指令的数据存取指令存储在第二存储器R1的存储器分区的存储器队列的方法已在前述实施例中详细说明,在此不再赘述。如上所述,由于数据更新指令u2对应的第一存储器D1中的存储分区d13会优先于时间点604被更新,而u1、u3随后在时间点606与607才会被更新。在依据本公开内容的一实施例中,由于在时间点601、602与603数据并未真正从第一存储器D1中存取,尚无法产生包括其数据前图像的数据还原日志,因此,在时间点601、602与603中仅会产生u1、u2与u3所对应的数据重做日志(步骤S703)。在时间点604,数据 更新指令u2会优先被执行更新。如前所述,由于在更新存取时会先将第一存储器D1中的存储分区d13中的数据载入至第四存储器R2中,与此同时便可以取得更新前的数据前图像,以产生时间点604时u2的数据还原日志。同理,u1与u3的数据还原日志也在时间点606与607时被产生(步骤S705)。

在依据本公开内容的一实施例中,数据重做日志可以包括所对应的数据更新指令,数据还原日志可以包括所对应的数据更新指令的数据前图像。举例来说,上述时间点602时所产生的数据还原日志可以是包括对应数据更新指令u1的数据重做日志:i(“B”2,0),以及对应数据更新指令u2的数据重做日志:u2:u(“A”=>“Z”),而在上述时间点T2的数据还原日志还包括了对应于数据更新指令u3的数据重做日志:u(“B”=>“A”)以及对应于u2的数据还原日志:(“A”,1,93)。然而,本公开内容不限于此,数据重做日志与数据还原日志可视需求的包括数据还原时所需的信息。

请再参照图6,根据上述的数据还原日志产生方法,在时间点T1,数据还原日志会包括数据更新指令u1、u2与u3的数据重做日志以及数据更新指令u2的数据还原日志。在时间点T2,数据还原日志会包括数据更新指令u1、u2与u3的数据重做日志以及数据更新指令u2的数据还原日志。在时间点T3,数据还原日志会同时包括数据更新指令u1、u2及u3的数据重做日志与数据还原日志。上述数据更新指令的交易请求会在时间点605时被提交。以下将以不同实施例分别讨论考虑在T1、T2与T3时数据库程序毁损的复原方式。

在依据本公开内容的一实施例中,数据库程序在时间点T1毁损。此时交易尚未提交,因此必须将数据库中的数据还原到交易请求的数据更新指令u1、u2与u3都尚未执行的状态。而由于u1、u2与u3中只有u2是将更新写入了第一存储器D1,u1及u3皆尚未更新,因此只需要利用此时的u2的数据还原日志中的数据前图像,来将第一存储器D1中存储分区d13中的数据复原成更新前的数据,即可将数据库还原到整个交易执行前的状态。

在依据本公开内容的一实施例中,数据库程序在时间点T2毁损。这时间点的数据还原日志内存有的内容与T1时间点的数据还原日志相同,但因为交易已经进行了提交,因此需要将数据库还原到u1、u2、u3已经更新完毕的状态,而由于数据更新指令u2已经更新完毕但u1及u3还没,因此需利用u1及u3的数据重做日志将u1及u3再次执行,如此则可以还原到三个更新操作都执行完的状态。在本公开内容的另一实施例中,倘若数据库程序是在时间 点T2毁损,也可例如是先利用u2的数据还原日志中的数据前图像,来将第一存储器D1中存储分区d13中的数据复原成更新前的数据,尔后再利用u1、u2及u3的数据重做日志来将三个数据更新指令都重做,如此也能确保将三个数据更新指令都完成执行。

在依据本公开内容的一实施例中,数据库程序在时间点T3毁损。这时间点由于交易已经提交,因此需要将数据库还原到u1、u2、u3已经更新完毕的状态。而由于所有更新都已经藉由数据库批次更新方法更新至第一存储器D1,因此当数据库还原后不需再做任何数据还原或数据重做,可以直接使用数据库。值得一提的是,上述的数据库还原日志产生方法与数据库还原方法皆是以还原第一存储器D1中的数据为例。在本公开内容的另一实施例中,上述的数据还原日志产生方法与数据还原方法也可以应用于还原第三存储器D2。值得一提的是,上述的数据还原日志产生方法与数据还原方法并不限于应用在本公开内容的实施例所提供的数据库批次更新方法,例如,也可以是应用在传统上只使用单一硬盘来负责所有类型数据存取指令的批次更新数据库的数据还原中。

简言之,藉由上述的数据还原日志产生方法与数据还原方法,在接收到数据存取指令并将属于第一类型指令的数据存取指令存入第二存储器D2的存储分区的存储器队列时只产生对应的数据重做日志而不产生数据还原日志。数据还原日志会等到实际执行特定存储分区的批次更新时,将特定存储分区中的数据原始状态载入至第四存储器R2中时才会产生。依据本公开内容实施例所提供的数据还原日志产生方法以非同步的方式,在将数据更新指令存入存储器队列时产生数据重做日志,并且在实际读取数据时才产生包含数据前图像的数据还原日志。如此一来,能够在批次更新的数据库中完成所需要的数据还原功能。由于数据在批次更新执行以前还没有被更新,因此这时候若需要执行数据还原并不需要使用到实际的数据内容,而当数据在批次更新之后,则数据还原日志已经产生出来,可以根据数据还原日志实作数据还原,以将已更新的数据还原为更新前数据。

综上所述,相对于传统的数据库批次更新方法,本公开内容实施例所提供的数据库批次更新方法,在批次更新数据内容的同时,使用数据交错的方式通过另外专用的存储器来专门负责执行必须即时回传数据内容的数据存取指令。如此一来,使用本公开内容的实施例提供的数据库批次更新方法来批 次更新数据,能够有效的避免必须即时回传数据内容的数据存取指令,例如是数据读取指令等,影响存储器的连续存取特性,藉此有效的提升数据库在批次更新时的效率。

虽然本公开内容已以实施例公开如上,然其并非用以限定本公开内容,本领域技术人员在不脱离本公开内容的精神和范围内,当可作些许的更动与润饰,故本公开内容的保护范围当视所附权利要求书界定范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1