我们公司用ORACLE数据库,经常听他们说执行计划,问题1:请问什么是执行计划
问题2:SQL SERVER中有执行计划吗?
问题3:可以手动停止执行计划吗?
问题4:数据库系统什么时候,更新执行计划,(如果执行计划中的一条长时间不用,会被清除吗)?

解决方案 »

  1.   

    问题1:请问什么是执行计划
    数据库内部对SQL语句分析后决定的执行路径和执行步骤问题2:SQL SERVER中有执行计划吗?
    有问题3:可以手动停止执行计划吗?
    不能问题4:数据库系统什么时候,更新执行计划,(如果执行计划中的一条长时间不用,会被清除吗)?
    对于一个语句,第一次执行会生成执行计划,并缓存在内存,如果在缓存被替换之前有可用的SQL语句执行,会使用缓存的执行计划。也就是说执行计划没有保存和清除,只有缓存和缓存被替换
      

  2.   

    问题1:请问什么是执行计划
    --> 执行SQL的步骤及其先后顺序.问题2:SQL SERVER中有执行计划吗?
    --> 当然有.问题3:可以手动停止执行计划吗?
    --> 执行计划是名词,何谓停止.问题4:数据库系统什么时候,更新执行计划,(如果执行计划中的一条长时间不用,会被清除吗)?
    --> 默认可复用执行计划,当以下情况之一时,不复用.
        1.执行的SQL不一致时,包括字母大小写,空格的不一致.
        2.当数据表统计信息有较大变更时(如大批导入数据).
        3.当执行的SQL有被指定recompile选项时.
        
      

  3.   

    问题1:请问什么是执行计划?
    回答:简单地说,就是完成某个功能的详细过程。因为完成某个功能可能会有很多种方法,在ORACLE中多指执行顺序和执行方式。与之相关念  rowid:伪列问题2:SQL SERVER中有执行计划吗?
    回答:SQL SERVER中当然也有。因为执行计划一个主要目的是用来优化查询索引功能的,比如:当你构建SQL语  句时,你可以按下CTRL+L看语句是如何执行的,使用索引扫描还是表扫表,进而优化性能。问题3:可以手动停止执行计划吗?
    回答:执行计划是系统内部的一种执行方法,不是一个具体的执行进程,所以不能手动停止。问题4:数据库系统什么时候,更新执行计划,(如果执行计划中的一条长时间不用,会被清除吗)?
    回答:一般第一次执行SQL语句时就生成了执行计划,执行计划是数据库系统根据成本优化或规则优化产生的,一旦生成,一般不再改动。如楼上所说3中情况和表的改动时会重新生成执行计划。PLSQL DEVELOP 按F5可以看到执行计划。
           
      

  4.   

    在sql server的查询分析器中,选中要执行的查询语句,然后按Ctrl+L就可以出现查询计划,不过这样的执行计划只是预估计的执行计划(即未真正执行sql语句),要查看实际的执行计划,可以单击:查询->包括实际的执行计划(U),这样,生成的计划是sql语句执行的实际的执行计划。你可以实际操作一下!