<海量数据库解决方案>2011050601
【摘抄】
向局部范围扫描引导的方法
&利用访问路径实现对sort的代替
不论是一般索引还是聚簇索引都按照索引列值进行了排序
索引列序也是能否实现局部范围扫描的一个非常重要的前提条件
&只使用索引的局部范围扫描
索引只在查找第一个满足条件的索引行时发生随机读取,之后执行的是连续扫描,但是从表中读取数据始终都是按照随机方式进行的。
&灵活使用min、max局部范围扫描
对应的章节仅仅描述“MAX,MIN的处理”,暂时没有发现怎么利用MAX,MIN来局部范围扫描
&filter型局部范围扫描
一般采用Exists来过滤,但不是唯一的
&利用rownum的局部范围扫描
Rownum并不是物理存储在表中的列,而是一种像SYSDATE或USER等一样可以被使用在任何SQL语句中的虚拟列。{在Oracle中}
Rownum并不是被读取行的编号,而是满足查询条件最终结果行的流水号。
个人觉得:在Sql2K中,大部分可以使用Set RowCount Num来设置查询的输出条数。但是没有Rownum的灵活使用方式,比如where Rownum = 10之类的写法。Set RowCount Num效果类似这样的Where Rownum <= Num。【注意,msSQL和Oracle的语法肯定不同,只是比对学习而已】
&利用嵌套视图的局部范围扫描
运用嵌套视图来实现局部范围扫描的原理:
将必须使用全部范围扫描的部分捆绑在嵌套视图中,以确保视图之外的部分能够以局部范围扫描方式来执行。
&利用函数的局部范围扫描
关于此节信息,书中讲解了些,但不容易理解。个人建议:使用db自带的内部函数,而非用户自定义函数。
另外,函数每次只返回一个值;当然可以用串接字符串和分解字符串来处理,这部分的函数也是内部函数,效率另算。
&利用查询语句二元化特征的局部范围扫描
关于此节数据,有些语法仅在ORACLE上;在msSql没有对应的。
书中对查询语句二元化特征的范例,暂时没有理会到精要,后续继续阅读
&web留言板中的局部范围扫描
此节讲解的是如何提高数据提取速度
方案:
1.使用索引替代排序来实现按照局部范围扫描,并直接输出指定结果
2.利用Rownum来指定要求输出的行数并中止执行
3.连锁执行计划,是指在驱动查询条件由or或in运算符构成时,将整个sql分解成多个独立sql以实现单独读取,并将结果进行合并后输出。
关于此节内容,和实践有关系,上述方案可根据实际来使用~
【需要不断阅读并在工作中实践~】
向局部范围扫描引导的方法
&利用访问路径实现对sort的代替
不论是一般索引还是聚簇索引都按照索引列值进行了排序
索引列序也是能否实现局部范围扫描的一个非常重要的前提条件
&只使用索引的局部范围扫描
索引只在查找第一个满足条件的索引行时发生随机读取,之后执行的是连续扫描,但是从表中读取数据始终都是按照随机方式进行的。
&灵活使用min、max局部范围扫描
对应的章节仅仅描述“MAX,MIN的处理”,暂时没有发现怎么利用MAX,MIN来局部范围扫描
&filter型局部范围扫描
一般采用Exists来过滤,但不是唯一的
&利用rownum的局部范围扫描
Rownum并不是物理存储在表中的列,而是一种像SYSDATE或USER等一样可以被使用在任何SQL语句中的虚拟列。{在Oracle中}
Rownum并不是被读取行的编号,而是满足查询条件最终结果行的流水号。
个人觉得:在Sql2K中,大部分可以使用Set RowCount Num来设置查询的输出条数。但是没有Rownum的灵活使用方式,比如where Rownum = 10之类的写法。Set RowCount Num效果类似这样的Where Rownum <= Num。【注意,msSQL和Oracle的语法肯定不同,只是比对学习而已】
&利用嵌套视图的局部范围扫描
运用嵌套视图来实现局部范围扫描的原理:
将必须使用全部范围扫描的部分捆绑在嵌套视图中,以确保视图之外的部分能够以局部范围扫描方式来执行。
&利用函数的局部范围扫描
关于此节信息,书中讲解了些,但不容易理解。个人建议:使用db自带的内部函数,而非用户自定义函数。
另外,函数每次只返回一个值;当然可以用串接字符串和分解字符串来处理,这部分的函数也是内部函数,效率另算。
&利用查询语句二元化特征的局部范围扫描
关于此节数据,有些语法仅在ORACLE上;在msSql没有对应的。
书中对查询语句二元化特征的范例,暂时没有理会到精要,后续继续阅读
&web留言板中的局部范围扫描
此节讲解的是如何提高数据提取速度
方案:
1.使用索引替代排序来实现按照局部范围扫描,并直接输出指定结果
2.利用Rownum来指定要求输出的行数并中止执行
3.连锁执行计划,是指在驱动查询条件由or或in运算符构成时,将整个sql分解成多个独立sql以实现单独读取,并将结果进行合并后输出。
关于此节内容,和实践有关系,上述方案可根据实际来使用~
【需要不断阅读并在工作中实践~】
无论生活、还是技术,一切都不断的学习和更新~~~努力~