综合信息区域治理
连接查询通过两张表中符合连接关系的字段来建立两张表的关联。但如何高效快捷的查询到所需要的数据,索引的选择就显得尤为重要,尤其是针对表中数据量的大小不同,以及高选择性查询与低选择性查询的不同,在选择查询连接机制(索引选择)上的判断和决策的评估是数据库的物理设计环节必不可少的。我们的分析都是假设连接是在表之间进行的。我们设定,表中有主键记录的数量为m,表中有外键的记录数为n。所有的连接实现都已经被SQL Server、Oracle以及DB2等多数主流数据库所支持。
一、一个简单性能模型
以下给出了一个评估物理设计方法和其它设计方法的简单性能成本模型。此模型主要包含对数据输入输出(l/O)的时间、网络延迟时间以及CPU时间的延迟等。由于网络延时和CPU延时属于系统运行的硬件环境,这里姑且不作考虑,但并不影响最终决策的判断和效果的评估。
由于新的技术的应用,再加上特殊的预取硬件的使用,使得表扫描和排序操作的效率非常之高,故全表扫描的l/O时间可以简单计算如下:
表扫描成本=单个块或预取缓冲区的l/O时间×表中所有块的l/O时间
排序成本=2×nb×logMnb其中,M:几路排序,nb:从硬盘读取到内存的块数目。
二、嵌套循环连接
外循环对表R顺序扫描,接着顺序扫描内循环的表S。基本参数:两表中被连接记录数和两表中物理记录数m和n。显然,循环算法复杂度为O(mn)。这里不妨假设每张表被存储在连续的磁盘空间。
例如,数据库STD,包含3张表:学
生表(student)有10000行记录,课程表(course)有200条记录,选课表(SC)
有50000条记录。其中的课程表(course)和选课表(SC)包含在图1所示的查询中。这两个表的连接字段是课程号(Cno),由于对于所有策略,它是恒定的,很依赖显示形式,故忽略请求显示连接结果集的时间。
三、块嵌套连接
块嵌套连接是一种变异的嵌套循环连
接,其内部循环表一次扫描外部循环表的
一个块,而不是每次只扫描一行记录。当
外部循环表的快驻留在缓存中,算法便可
以简化到按照没有l/O开销的主存处理方式
扫描块中的所有记录,这样可以大大减少
连接所需要的l/O操作次数,并被普遍优选
为基本嵌套循环的方法。我们再来看例1,
db2数据库sql语句
评估外部循环表的两种可能应用场景。
嵌套循环方式1:选课表(SC)是外
部循环表。
连接l/O时间=扫描选课表(SC)一次
+扫描课程表(Course)预读取缓存77次
=(77缓存+77扫描×1缓存)
×5.8ms=0.89秒
嵌套循环方式2:课程表(Course)
作为外部循环表。
连接l/O时间=扫描课程表(Course)
一次+扫描选课表(SC)m次
=(1缓存+1扫描×77缓存)
×5.8ms=0.45秒
这里,我们可以看出,块嵌套方式比
基本嵌套循环方式效率明显要好,且将数
据量小的表作为外部循环表依然是一个比
较好的策略。
四、索引嵌套循环连接
当连接表仅有少量记录被访问时(低
选择性),在块嵌套循环连接的基础上作
索引就显得非常有必要了。
此策略包含外码表扫描和通过指向每
个目标行唯一索引方式进行的(h+1)次的
主码表块访问操作。即对外码表进行一次
全表扫描,获取符合条件的每个连接的属
性值,通过唯一索引定位主码表中对应的
记录。假设课程表(Course)的B+树索
引高度h=2。
连接l/O时间=扫描整个外码表选课
表(SC)+索引每个主码表课程表符合条
件的记录
=(77缓存+(h+1)块(缓存))
×5.8ms =(77+3)×5.8ms=0.46秒
索引嵌套循环连接方式2:首先索引外
码表,然后索引外码表。
方式2的基本策略是使用B+树或
hash索引每个符合条件的主码表记录一次,
接着使用B+树组合索引匹配主码值的符合
检索条件的外码表键值。此时,一个块所
需的指针指向ntr=100条目录外码值记录
的组合索引高度h=3。
连接l/O时间=索引主码值表+索引
外码表
= [(h+1)+(h+1+ntr)]×5.8ms=(4+104)
×5.8ms=0.63秒
由此可见,在查询选择性较低的情况
下,采用方式1的表扫描不失为一个很好
的策略。
五、合并排序连接
若连接列已经排好序,则接下来在请
求完成连接时,每张表只需要一次顺序扫
描。若未进行排序,则在合并前,每张表
需要首先进行排序。即便排序操作有同样
的开销,合并排序算法仍然比嵌套连接算
法快。假设nb块的排序算法复杂度在三路
排序情况下近似为2×nb×log3nb,图1中,
课程表(Course)有200行记录,选课表
(SC)有77个缓存共50000条记录。
合并排序方式1:连接前两张表均已按
照Cno排序。
连接l/O时间=合并时间(扫描两张表)
=(77缓存+1缓存)×5.8ms=0.45秒
合并排序方式2:仅课程表(SC)已
按照课程号(Cno)进行排序。
连接l/O时间=选课表的排序时间+
合并时间(扫描两张表)
=(2×77×l o g377+77+1)
×5.8ms=3.98秒
合并排序方式3:课程表和选课表均未
按照课程号(Cno)进行排序。
连接l/O时间=两张表的排序时间+
两站表的合并时间
=(2×77×log377+2×1×log31+77+1)
×5.8ms=3.98秒
这里,我们可以看到,合并排序连接
的策略代价最高,若不要求排序,则合并
排序比索引块嵌套循环连接还要高效。
六、哈希连接
哈希连接的策略是扫描每张表并哈
希每个符合条件的连接字段属性值到分
区中,并在内存中建立哈希表,如果可
能的话,也可以直接在磁盘上建立哈希
表。当哈希表被创建后,接下来就是访
问两张表中符合条件的记录。这个过程
包括三个扫描阶段:
一读取两张表;二是通过哈希数值重
新将两个表写入文件分区;三是实际连接
读取分区。
因此,算法的复杂度为O(3m+3n)。
(下转第290页)
基于一种简单性能模型的数据库连接索引的选择
琚耀
合肥学院 管理系,合肥  230061
摘要:分析已经存在的连接算法的基础上,实现基于连接索引的代价评估,从数据模型理论上去佐证每
个连接查询的性能。在这里,合理利用了分配的内存,只扫描关系中参与连接的部分,尽量避免了冗余的I/O的同时,考虑到排序的代价,以及影响到算法性能的多
种因素。
关键词:索引;I/O
时间;块访问;块嵌套循环;哈希连接
·289 ·
区域治理综合信息(上接第289页)
这里,假设检测两个分区的时间可忽略不
计,因此,在假设之前,让ntr=100,即符
合条件的外键数值记录是100条。
哈希连接方式1:哈希表分区在磁盘上。
连接l/O时间=扫描两张表+写分区
+扫描分区定位目标行
=3×(77缓存+1缓存)
×5.8ms=1.36秒
哈希连接方式2:哈希表分区存储在内
存中。
连接l/O时间=扫描两张表在内存中写入分区+扫描分区定位目标行
=(77缓存+1缓存)×5.8ms=0.45秒
在哈希连接中,若内存中驻留哈希文件,表扫描分区操作可以仅在需要时执行。
通过基本性能模型的定量评估和测算,可以更加直观的对各类连接场景做出较为符合客观的评价,并同时给出连接列上的索引选择方式。这里将它们陈列在表1中。
索引选择决策的几个不同实例描述了
索引设计的基本原则。当使用连接时,可
根据查询的选择性的高低,索引设计可采
取不同的选择,以期到达最佳的性能。
参考书目:
[1] 王珊 萨师煊  数据库系统概论(第5
版)高等教育出版社  2014
[2] 阳国贵. 对象关系数据库中一个基于连
接谓词索引的连接算法 . 计算机工程2000
[3] 肖海蓉 任民宏 数据库原理与应用
清华大学出版社  2016
[4] Tapio Lahdenmaki  Michael Leach数据库
索引设计与优化 译者 曹怡倩,赵建伟  2015
一、干熄焦炉壳体主要材质为Q235,炉内托砖板主要材质为310S及Q235。炉内砌体属于竖窑式结构,是正压状态的圆桶形直立砌体,炉体自上而下可分为预存室、斜道区和冷却室
预存室的上部是中空正圆台形顶区,中部是竖直圆桶区,下部有多个观察孔。与预存室下部连接的是环形气道,其结构是内墙及环形道外墙两重圆环砌体。外壳用钢板制作,内墙采用带钩舌的高强度硅砖砌筑。
冷却室是一个竖直圆桶形结构。在冷却室底部是整个炉内配风用的鼓风装置,其主要由周边风环及中央风帽组成,完成整个干熄炉内冷却循环气体的分布及循环冷却。红焦下移过程中与冷却风逆流换热冷却,而达到熄灭红焦的作用。产生的高温循环气体到达干熄焦锅炉进行换热而产生蒸汽。
二、结构特点
2.1干熄焦炉炉壳是一个大型薄壳桶体,根据其总高度,依据图纸将它分七段壳体进行制作加工。其本体安装时必须与钢结构主框架、鼓风装置穿插进行安装。
2.2干熄焦炉上接装入装置,下连排出装置,进风口法兰接循环风机出口管道,出风口法兰接循环系统一次重力沉降式除尘器,为了保证干熄焦系统密封安全稳定
运行,各连接面接缝必须密封。为了保证
系统密封,因此必须做到如下几点:
(1)炉壳各部件其制造尺寸、安装过
程、组焊后的位置必须精确无误。
(2)进、出风口及人孔法兰的不平度
必须控制在2mm以内,确保连接后的系统
密封。
(3)与相关设备的接口,设备安装的
基准面必须保证精度要求:即鼓风装置下
部溜槽法兰出口面、3段炉壳出风口、7段
炉口等部位的中心线、标高、水平度及垂
直度都必须严格控制在5mm以内。
三、控制要点
3.1地面组装及调整检测控制点
地面组装工作是在一个刻画了圆周、
中心线及0度、45度、90度、135度、
180度、225度、270度、315度的钢平台
上进行,同时在圆周上用小块钢板平至
少32点,其平面度允差不大于2mm。使
炉壳下口准确定位在钢平台上划好的基准
圆周上,且平面度不大于2mm。
用吊挂的测线架上悬挂的中心线为基
准,用钢卷尺在0度、45度、90度、135度、
180度、225度、270度、315度共8个点
上检测其不圆度偏差,保证其精度在5mm
以内。局部圆弧偏差用内外样板检测。如
果超差,采取强制变形手段进行调整。整
个检测过程中每段炉壳下口对正钢平台的
圆,用钢尺检查上口进行检测。
同时要做好防止吊装变形措施:用
单块钢板在内支撑上焊吊耳,并且控制
吊装钢丝绳的夹角,尽量减少钢丝绳所
受的水平分力,从而避免炉壳向四周受
力点变形。
当每段炉壳在焊接完毕后再检测调整
一次,检测合格后在上部加支撑杆固定后
待装。
3.2  炉壳焊接控制要点及质量标准
炉壳焊缝的分布情况要避免出现十字
焊道,加过桥码子强制反变形,同时按焊
接工艺评定要求分层分道次焊接。
横向圆周焊缝采用4人对称同步焊接
或3人等分圆周同步焊接。加强筋板采用
断续、错位间段焊接,防止焊接热量过度
集中产生应力集中而局部变形。
通过以上控制手段,本厂制作出来的
炉壳在现场组装过程中没有发生需返修问
题,对于保证干熄焦整体施工进度起到了
重要作用。
参考文献:
[1].潘立慧,魏松波.干熄焦技术,北京:
冶金工业出版社[M].2005:(3)连接方式l/O时间连接列上索引最佳性能
高/低选
择性查询嵌套循环112~290秒
内部表:需要索引
外部表:最好索引
投影为外部循环
(外部表小)
块嵌套循环0.45~0.89秒
内部表:需要索引
外部表:最好索引
投影为外部循环
(外部表小)
高排序合并0.45~3.89秒内外部表:必须索引无须排序高
索引嵌套循环0.46~0.63秒内外部表:必须索引表与索引的ntr=100低哈希连接0.45-1.36秒内部表:不需要索引
外部表:可选
哈希分区在内存
外部表小,内部表大
低表1  实例1和实例2的I/O操作性能比较结论
干熄焦炉炉壳设备制作控制简述
梁艳峰    王者彩
沈阳蓝源冶金机械制造有限公司,辽宁  沈阳  110200
摘要:干熄焦炉炉壳长年工作在高温状态下,干熄焦整个系统投入生产使用后如果出现设备故障,为了检修设备需要,其停炉、重新开炉生产时间较长。而且干熄焦炉频繁的启动、停炉将严重影响炉壳内耐材的使用寿命,进而大大缩短整个干熄焦装置的运行寿命。因此干熄焦装置设备投入运行后必须达到工作长期可靠,故障率低,干熄率高的要求。干熄焦炉炉壳为了满足生产长期运行及安全可靠的目标,其加工制作必须严格满足苛刻的精度要求。
关键词:干熄焦炉炉壳;制作;组装
·290·

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。