zoukankan      html  css  js  c++  java
  • <海量数据库解决方案>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以实现单独读取,并将结果进行合并后输出。
       
        关于此节内容,和实践有关系,上述方案可根据实际来使用~




    【需要不断阅读并在工作中实践~】



    无论生活、还是技术,一切都不断的学习和更新~~~努力~
  • 相关阅读:
    PHP多维数组转为一维数组的方法实例
    PHP内存模拟分析
    linux windows mysql安装
    Ubuntu 连接Xshell 不能连接
    Linux软链挂载
    python 数据库连接 CRUD
    RabbitMQ 实现广播订阅
    Redis 实现广播订阅
    python-切片
    python中的3目运算(3元表达式)
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/2038520.html
Copyright © 2011-2022 走看看