所有提交的电磁系统将被重定向到在线手稿提交系统。作者请直接提交文章在线手稿提交系统各自的杂志。

自适应连接运营商结果率最大化

帕拉维·埃呀尔女士D.Umap* 1,Prof.Dr.G.R.Bamnote2
  1. 信息技术、教授.Ram Meghe理工学院&研究Badnera (Amravati),印度马哈拉施特拉邦。
  2. 教授计算机科学& Engg .Ram Meghe理工学院&研究Badnera (Amravati),印度马哈拉施特拉邦。
通讯作者:Pallavi D.Umap女士,电子邮件:p.p.takalkhede@gmail.com
相关文章Pubmed,谷歌学者

访问更多的相关文章全球研究计算机科学杂志》上

文摘

这项工作主要集中在单个连接操作符是如何工作的,同构和异构环境。自适应算法加入最近吸引了很多关注新兴应用自治数据源提供的数据是通过异构网络环境。在传统的连接技术,他们可以尽快开始生产连接结果第一个输入元组,从而提高流水线通过平滑连接结果生产和掩蔽源或网络延迟。在这工作,评估性能和比较的多路连接(MJoin),双指数嵌套循环反应加入(餐厅),和多个索引嵌套循环反应连接(矿工)。餐厅结合两个关键元素:一个直观的冲洗政策,旨在提高内存中的元组的生产力生产的结果,和小说凹角加入技术允许算法快速处理内存和磁盘上元组之间切换,从而更好地利用临时延迟当新的数据是不可用的。矿工优于与前面加入算法相比生产结果元组以更高的速度,同时更好地利用可用的内存。

关键字

查询处理、流、连接

介绍

在实际系统中,很难保持所有的数据都存储在一个大桌子。这样做将需要维护多个副本相同的价值观和可能威胁到数据的完整性需要天天,IT部门都几乎总是把他们的数据在不同的表中。正因为如此,一个方法需要同时访问两个或两个以上的表使用连接操作。连接两个表字段相结合的一种手段,使用共同的价值观。连接操作被认为是关系数据库的基本操作之一,它也难以有效实现的操作。连接是一个SQL和数据库的基本结构,如,他们从两个或多个数据库表记录合并到一行源代码,一组行具有相同的列,这些列可以源自加入表以及形成和内置的或用户定义的函数使用一个表达式。
连接用于加入记录从两个或多个表或字段在数据库中通过使用价值共同表和结果集可以存储或保存在一个表中[1]。有四种类型的连接和他们指定的ANSI(美国国家标准协会)和内,外,左,和正确的。内连接进一步分为均匀加入,自然连接和交叉连接。外连接进一步分为左外连接、右外连接、全外连接。两个表是用于连接的一个例子;他们部门Emp表和部门表的ID列。
图像
内连接被认为是作为一种常见的操作连接他们的默认类型连接基于谓词。他们把两个表的值和结果保存在新表。内连接有显式连接符号和隐式连接符号。
外连接并不期望任何匹配的记录,他们不需要在连接两个表的每条记录都有一个匹配的记录。外连接没有隐式连接符号。显式连接符号和隐式连接符号表达的方式连接语法和它们由SQL指定显式连接符号使用关键字“加入”和“On”[1]
Select * from Emp Emp.DeptID = Dept.DeptID内连接部;
隐式连接符号列表连接表并使用select语句:-
Select * from Emp,部门Emp.DeptID = Dept.DeptID;
1。自适应加入:适应方案连接查询更复杂的设计和分析相比,用于选择排序有几个原因。
快速自适应连接可用性的关键性能的结果和一个连续的元组生产。它克服了初始延迟情况下,缓慢的数据交付或丛发性的到来,会影响效率的加入[2]
用于快速交付数据从一个位置到另一个位置。当输入元组可用然后开始加入过程比传统加入流程。
动机:一些额外的挑战相比,自适应连接传统连接[3]:输入关系自治网络所提供的资源。这意味着有很少或没有控制或元组的到达率。数据传输不可靠的网络环境。通常不适合或高效,因为大多数传统加入算法不能产生结果,直到至少有一个关系是完全可用的,可用的完整的数据可能会在很长一段时间。有时,这些算法不能使用,如果数据是完全可用,但他们产生部分的结果。部分连接结果的可用性为广泛的应用程序是很重要的。
的主要优势传统的连接技术,他们可以尽快开始生产连接结果第一个输入元组,从而提高流水线通过平滑连接结果生产和掩蔽源或网络延迟。

目的:

餐馆的)实验研究(双指数嵌套循环反应加入)
b)计算餐馆的性能比较,矿工和MJoin。
c)评估矿工的性能(多个索引嵌套循环反应加入)
论文工作:
矿工算法的实现和优化的目标和比较它与餐厅和MJoin。在矿工,它使用均匀的高质量连接结果数据库。所有的数据存储在缓冲区根据索引号和数据获取和应用连接查询。在餐厅(双索引嵌套循环反应连接),它使用异构数据库和一个新颖的自适应连接算法,同时支持平等和连接谓词。这餐厅算法的特点是分块处理自适应。他们可以生产连接结果,如果一个关系是完全到达。在MJoin[4],它使用单一数据库连接两个或多个表。首先,考虑加入这两个表结果存储在第三个表。然后,这第三个表是与另一个表即第四表。

文献综述

现有的连接技术:
主要的三类加入算法
嵌套循环连接算法
b)分类合并加入算法
c)基于散列连接算法
嵌套循环连接算法[1]:嵌套循环连接被认为是一个最简单的算法的加入,为每一个记录的第一个表的全部记录第二个表扫描。这个过程是对每一个重复记录的第一个表为所有第一个表记录。两个层次的循环和外循环和内循环。第一个表循环称为外循环和第二个表循环称为内循环。,嵌套循环连接算法重复输入/输出扫描的表。他们认为是低效的。
让这两个表是A和B,然后嵌套循环算法的算法对于每个表的记录
从表一个读取记录
为每一个记录的表B
从表B读取记录
比较加入属性
如果匹配
然后
存储记录
例子:考虑两个表的模式“客户”和“销售”
创建表的客户(Cust_Id int, Cust_Name varchar (10))
插入客户值(1,一个¢€ŸJohnA¢€Ÿ)
插入客户值(2,一个¢€ŸHenryA¢€Ÿ)
插入客户值(一个¢€Ÿ生田斗真¢€Ÿ)
另一个表是„SalesA¢€Ÿ,
创建表的销售(Cust_Id int,项varchar(10))插入销售值(2,¢€ŸCameraA¢€Ÿ)插入销售值(3,¢€ŸComputerA¢€Ÿ)插入销售值(3,¢€ŸMonitorA¢€Ÿ)插入销售值(4,¢€ŸPrinterA¢€Ÿ)查询写成:-
Select * from销售内连接客户C年代。Cust_Id = C.Cust_Id
在上面的例子中,外部表是“顾客”而内部表是“销售”。因此,它首先扫描“客户”表。一次一个客户,需要为每个客户,它扫描表“销售”。以来,有三个客户;它执行的扫描表3次“销售”。每个“销售”表的扫描返回4行。比较每个“销售”当前“顾客”和评估是否两行Cust_Id相同。返回Cust_Id的这些行。它有3个客户和4销售。所以,它执行这个比较3 * 4到12倍。只有3这些比较结果的匹配。
分类合并加入算法[1]:传言称合并算法是一个高效的连接算法相比,嵌套循环连接算法。排序合并连接算法有两个操作排序和合并。在排序操作中,连接两个表是按升序排序。在合并操作,这两个表合并排序。表的记录一个基于表B的连接属性分类记录的基础上加入属性。
让我= 1和j = 1
重复
读取记录(我)
读取记录B (j)
如果连接属性(i) <连接属性B (j)
我+ +
其他的
如果连接属性(i) >连接属性B (j)
j + +
其他的
把记录(i)和B (j)查询。
图像
基于散列连接算法[1]:在基于散列连接算法,散列和探索是两个过程。创建一个哈希表,哈希所有记录的第一个表使用一个特定的哈希函数。第二个表的记录也散列相同的哈希函数和探索。如果找到匹配,两个记录连接,放置在查询结果。必须做出决定哪些表是散列和表了。自创建一个哈希表,最好选择较小的表散列并为探索更大的表。散列连接算法作为让H是一个哈希函数
为每一个记录在表B从表读取记录散列的记录基于连接属性值使用哈希函数H为每个记录在表一个哈希表读取一条记录从一个哈希表记录的基础上加入属性值使用H调查哈希表如果找到一个索引条目然后比较每个记录在这个索引条目表记录的年代,如果匹配则把两人查询。
例子:-
考虑两个表的模式Emp_Master Emp_Info
创建表Emp_Master (int Id、名称varchar (10)
指定varchar(10),部门varchar (10))
插入Emp_Master值(1,一个¢€ŸJohnA¢€Ÿ,一个¢€ŸLecturerA¢€Ÿ,一个¢€Ÿ机甲¢€Ÿ)
插入Emp_Master值(2,一个¢€ŸJackA¢€Ÿ,一个¢€ŸProfessorA¢€Ÿ,一个¢€ŸExtcA¢€Ÿ)
插入Emp_Master值(一个¢€ŸJillA¢€Ÿ,一个¢€ŸAPA¢€Ÿ,一个¢€ŸCompA¢€Ÿ)
创建表Emp_Info (int Id, Dt_of_Joining日期时间)
13/10/04插入Emp_Info值(2)
12/11/05插入Emp_Info值(1)
13/10/04插入Emp_Info值(2)
10/09/05插入Emp_Info值(3)
12/11/05插入Emp_Info值(1)
13/10/04插入Emp_Info值(2)
13/10/04插入Emp_Info值(2)
查询写成:选择int Id、名称varchar(10),指定varchar(10),部门从Emp_Master varchar(10)内连接Emp_Info Emp_Master。Id = Emp_Info。Order by Emp_Info Id。Dt_of_Joining desc。现有工作适应加入算法可分为两类:基于散列连接和分类[3]加入。基于哈希算法的例子有XJoin、散列合并连接,进步合并联接。
双管线式散列连接(DPHJ)[5]:——双管线式散列连接(DPHJ)是对称的散列连接的另一个扩展算法[7]。DPHJ有两个阶段。第一阶段类似于内存中加入对称的散列连接和XJoin [5]。在第二阶段,对不配合的在第一阶段,加入了磁盘。DPHJ[6]适用于中等规模数据,但不能很好地扩展为大数据大小。
XJoin[8]:它是一个非阻塞的连接操作符,它有一个小的内存占用,允许许多这样的运营商并行活动。XJoin优化快速产生初始的结果,可以隐藏断断续续的延迟反应性地到来的数据调度后台处理。它表明XJoin是一种有效的解决方案提供快速查询响应用户即使在缓慢而猝发性远程数据源的存在。
MJoin [9]: MJoin算法的基本思想很简单:概括对称二进制散列连接和XJoin算法为两个以上的输入工作。我们的主要目标是最大化的输出率在内存到内存阶段MJoin。MJoin,磁盘内存阶段的目的是使系统产生输出输入受阻,而磁盘-磁盘阶段旨在生成最终的答案输入后终止。为MJoin,有趣的是,我们如何处理内存到内存的内存溢出决定了输出率阶段。
进步合并连接[10]:PMJ的自适应非阻塞版本分类合并连接算法。它将记忆分为两个分区。元组的到来,他们插入内存分区。当内存快满的时候,分区分类的连接属性和连接使用任何内存连接算法。因此,输出元组获得每次内存被耗尽。接下来,分区(即。,the bucket pairs that were simultaneously flushed each time the memory was full) is copied on disk. After the data from both sources completely arrives, the merging phase begins. The algorithm defines a parameter F, the maximal fan-in, which represents the maximum number of disk partitions that can be merged in a single “turn”. F/2 groups of sorted partition pairs are merged in the same fashion as in sort merge. In order to avoid duplicates in the merging phase, a tuple joins with the matching tuples of the opposite relation only if they belong to a different partitition pair.
散列合并连接[11]:HMJ混合查询处理算法结合XJoin和进步的想法合并联接。HMJ是一种新的非阻塞加入算法处理数据项通过不可预测,从远程数据源缓慢,或丛发性网络流量。HMJ算法设计时考虑到两个目标:(1)最小化时间产生最初几个结果,和(2)产生的两个来源连接结果即使偶尔连接操作符被封锁。HMJ算法有两个阶段:哈希阶段和合并阶段。散列阶段雇佣了一个内存中的基于散列连接算法产生连接结果尽快数据到达。合并阶段负责生产连接结果如果两个来源屏蔽。
基于速率的进步加入[12]:RPJ是最近和先进的自适应算法。它是第一个算法,试图理解和利用之间的联系记忆内容和算法的输出率。在在线阶段HMJ效果。当内存已满,它试图估计最小的机会参与哪些元组连接。
在这项工作中,我们使用RPJ(率逐步加入),不断调整其执行根据数据属性(例如,他们的分布,到达模式,等等)。RPJ利用小说冲洗算法op-timal之间所有可能的选择(基于相同的数据分布统计信息,到达模式,等等),并显著提高memory-memory阶段的效率。此外,RPJ最大化输出率通过调用内存磁盘和双盘式战略秩序,即选择执行下一个阶段是将产生最高的输出率。
新加入技术:
食客:——在这个工作,第一个算法是双指数嵌套循环反应连接(餐厅),一个自适应双向连接算法。餐厅[4]结合两个关键元素:一个直观的冲洗政策,旨在提高内存中的元组的生产力生产的结果,和小说可重入加入技术允许算法之间迅速切换处理内存和磁盘上的元组,因此,更好的利用临时延迟当新的数据是不可用的。。
考虑两个有限RA和RB的关系,这可能是可能存储在不同的站点,用于我们的本地系统。输入元组关系共享可用的内存。一个单独的索引的连接属性维护内存常驻每个输入关系的一部分。单独的索引维护内存常驻每个输入关系的一部分。输入元组到达时,计算占用的内存缓冲区和内存中的元组正在处理的算法。每个关系与一个磁盘分区,商店的元组关系不符合的记忆和刷新到磁盘。每一对两国关系元组将加入,然后产生的结果。每个元组是驻留在内存有一个连接,这实际上是指数的一部分。这是最初设置为0。每当一个内存中的元组生成一个结果加入,加入一些奖金。[2]
矿工:多个索引嵌套循环反应加入(矿工)是用于优化数据均匀环境中使用两个表我们的实验表明,矿工[1]优于先前的自适应算法一起生产结果元组以更高的速度,同时更好地利用可用的内存。我们的实验也表明,在存在多个输入,矿工管理生产高百分比的早期结果。。考虑两个有限的关系。保持每加入一个单独的索引在每个连接属性的关系。当一个新的元组,它是存储和索引内存空间的关系,基于连接属性的关系。这个新tuple需要与所有匹配的内存中的元组属于所有其他参与连接的关系。冲洗策略应用,当记忆填满。
餐馆和现有算法的区别:
一个餐馆支持等值连接和范围查询。PMJ还支持范围查询,但有一些限制因为它可怜的阻塞行为。b。餐厅将介绍冲洗政策,用于创建和维护三个重叠的区域价值。c。餐厅将引入了一个更具响应性阶段,允许该算法快速进入处理元组块当两个数据源。d。在精简算法,餐厅改善它们的相对性能比现有算法。[1]

系统分析和设计

分析:
执行Join语句:-
选择加入语句的执行计划,优化器必须使这些相互关联的决策:访问路径:——至于简单语句,优化器必须选择一个从每个表检索数据的访问路径连接语句。b。连接方法:加入每一对行来源,任何数据库必须执行连结操作。连接方法包括嵌套循环、分类合并和散列连接。c。连接顺序:执行一个语句连接两个以上的表,SQL连接的两个表,然后将生成的源到下一个表行。这个过程一直持续到所有表加入到结果。
选择连接的执行计划:-
查询优化器考虑当选择执行计划如下:a。优化器首先决定是否加入两个或两个以上的表肯定结果连续源最多包含一行。优化器能够识别这种情况下基于独特的表和主键约束。如果存在这种情况,那么优化器连接顺序把这些表放在第一位。然后,优化器优化加入剩余的的一组表。b。加入语句与外连接条件,外连接操作符的表必须在另一个表的连接顺序的条件。优化器不考虑加入订单,违反这条规则。查询优化器的帮助下,优化器会生成一组执行计划,根据可能的连接顺序,连接方法和可用的访问路径。优化器估计每个计划的成本和选择成本最低的。
算法概述:
在这项工作,餐厅算法用于计算两个有限的连接结果的关系,这是存储在不同的网站和流到我们本地系统是高度自适应算法的价值分布的关系和潜在的网络延迟和矿工算法用于计算连接结果同质的网络环境。
算法内部:
来自关系。输入元组共享可用的内存。b。2。一个单独的索引的连接属性维护内存常驻每个输入关系的一部分。c。我们使用了内存数据结构,比如数组、哈希表在这个算法。d。计算内存被传入的元组存储的输入缓冲区。
问题定义:给定两个关系流远程数据源和内存有限的约束下,我们的目标是生产合成加入速度更高。
需求分析:
软件要求:
操作系统:Windows XP
语言:c# . net
数据库:SQL Server 2005,微软access
硬件需求:
系统:奔腾IV 2.4 GHz
硬盘:40 gb
内存:1 GB
软盘驱动器:1.44 MB
设计:
提出设计:
在这项工作中,我们考虑了两种自适应连接算法,首先是餐厅使用异构数据库和另一个是矿工使用齐次数据库。餐馆和矿工的重要特性是第一个适应性,完全分块连接技术支持范围的连接条件。范围内连接查询是一类非常常见的连接在不同的应用程序中,传统的商业数据处理和空间数据处理财务分析应用程序。
图像
图像
从单一数据库得到三个表
A和b b。应用连接查询
如果(A与B c。)
d。然后(结果存储在First_加入表)
e。这个First_Join表是存储在数据库中
f。之后这First_Join表加入第三个表
g。结果将显示
图像
一。得到两个不同的数据库的两个表说,a和B
b。如果一个关系是完全可用的缓冲区。
c。然后(A与B)
f . d。e。等待完整的关系如果(驻留内存元组存在)试图加入根据匹配h。两个表之间的比较。我如果不是(刷新到磁盘当内存溢出)
图像
a和B。考虑两个表B。表有两列,表B有两列c。表a和B包含两行。d。如果(查询可用缓冲区)。然后e。获取索引。查询已存在的其他缓冲f。显示结果。g。去主菜单h。(数据/查询)放入缓冲区。显示结果和j。显示了合成时间

系统实现

实现:
实现项目的阶段理论设计时发现工作系统。因此,它可以被认为是最关键的阶段,在实现一个成功的新系统给用户,信心,新的系统将工作,是有效的。实施阶段涉及精心规划,调查现有的系统和itA¢€Ÿ年代限制的实现,设计的方法来实现转换和转换方法的评价。
MJoin描述:-
,考虑两个(表)关系,(第一次表)和B(第二个表),C(第一_join)、D(表三)。b。加入A和b两个表中根据他们的匹配和显示结果。c。这一结果存储在c表。d。之后,C (first_join)表连接d(表三)e。显示结果。
用餐者的描述:
,考虑两个(表)有限的关系,这可能是可能存储在不同的站点,用于我们的本地系统。(使用两个不同的数据库)b。它使用SQL数据库为另一个表一个表和微软access数据库。c。输入元组关系共享可用的内存。d。选择列一个表,它是匹配的与另一个表。创建并选择联接条件根据他们的匹配。e。创建查询并显示在屏幕上。f。根据列选择,显示一个表,然后另一个表并显示两个表之间的连接通过使用内连接。g。合成时间将显示出来。
公司描述:-
考虑两个有限的关系。b。它为每个加入关系维护一个独立的索引在每个连接属性c。当一个新tuple来临,它是存储和索引内存空间的关系,根据加入的关系属性。d。这个新tuple需要与所有匹配的内存中的元组属于所有其他参与连接的关系。e。冲洗策略应用,当记忆填满。f。矿商的优化算法实现,当数据从缓冲区获取并显示其合成时间g。否则,进入主菜单,把查询。h。显示结果。
图像

系统执行详细:-

MJoin: -
步骤1。当点击按钮“开放数据库连接”步骤2。连接两个表之间的贷款和贷款主这是存储在数据库中。步骤3。由于贷款和贷款主存储在表“First_join”。步骤4。当点击按钮“第二个加入”。它显示了三个表之间加入。
图像
步骤1。通过使用创建查询我选择两个表的列。e从两个表中选择多个列联接条件的地方。步骤2。选择LoanMaster查询”。accno, EMP.EMPNO LoanMaster, EMP LoanMaster: loandsn: accno = EMP: cmpdsn: EMPNO”。
图像
步骤1。它显示了加入两个tablesA¢€Ÿ我。使用内连接e LoanMaster和EMP表
d。矿工:-
步骤1。编写SQL语句中的查询。
步骤2。单击按钮和查询执行
图像

结论

在这项工作中,我们已经成功地实现了三种算法。三个算法MJoin,餐馆和矿工。
在MJoin,使用单一数据库。MJoin第一阶段期间,每个新tuple是来自一个地方然后计算它的开始时间,当元组存储在缓冲区,计算它的结束时间(开始时间-结束时间)和计算差异MJoin是3.174毫秒。
在餐厅,使用异构数据库。该算法可以有效地处理连接谓词范围条件下,这种技术的独特功能。每个新tuple来自远程位置。计算它的开始时间,当执行开始和这个元组存储在内存之后计算它的结束时间,我们将展示计算(输出)即区别餐馆的开始时间和结束时间是5.014毫秒。
在矿工,使用齐次数据库。每一个新的元组来了并计算其开始时间和结束时间。计算其数据流率是4.375毫秒。但是,所有三个算法可能不同于这些值。

引用

  1. J。Jayashree和C。Ranichandra“加入算法高效查询处理大型数据集”亚洲计算机科学和信息技术杂志》2:3(2012)31日-35
  2. 里面。Bornea, Vasilis Vassalos Yannis Kotidis,安东尼奥Deligiannakis:自适应连接运营商流输入速度的优化结果。IEEE反式。"。数据Eng。22日(8):1110 - 1125 (2010)
  3. j·d·Ullman h . Garcia-Molina, j . Widom教授。数据库系统:完整的书。普伦蒂斯霍尔,2001
  4. m·a·Bornea诉Vassalos y Kotidis, a . Deligiannakis。DoubleIndex嵌套循环反应连接速度优化的结果。在ICDEConf。,2009年
  5. 大卫•Taniar克莱门特H.C. Leung温妮Rahayu, Sushant高尔。(2008)“高性能并行数据库处理和网格数据库”约翰威利
  6. 李振国艾夫斯,d . Florescu,等。一种自适应查询执行系统数据集成。1999年SIGMOD。
  7. w·洪教授和m . Stonebraker。在XPRS优化并行查询执行计划。1991年pdi,
  8. T。Urhan M.J.Franklin。Xjoin:相对预定pipilined连接操作符。IEEE Eng.Bull数据,23920年,2000年
  9. 年代。D Viglas,参考书籍诺顿和J.Burger。最大化输出的多路连接查询/流媒体信息来源。2003年VLDB:第29届国际
  10. j . > b·西格和d·泰勒。进步合并连接:一个通用和非阻塞事加入算法。在VLDB学报》,2002年。
  11. m . f . Mokbel m . Lu和w·g·诺。Hash-Merge加入:非阻塞算法加入生产快速和早期加入的结果。2004年在ICDE相依。2003年会议上非常大的数据库部分。
  12. 道y、m . l .姚d . Papadias m . Hadjieleftheriou和n . Mamoulis。RPJ:生产快速连接结果通过流率的优化。ACM SIGMOD研讨会论文集,2005。
  13. http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=6&ar=msnhome
  14. http://www.softwaretestinghelp.com/types-of-software-testing/