首页 > 数据库 >SQL SERVER2005 Index Scan效率

SQL SERVER2005 Index Scan效率

时间:2024-01-23 15:32:25浏览次数:27  
标签:lob Index 读取 Scan zping SERVER2005 索引 operator com

SQL SERVER 2000中,包括网上都说查询时“abc%”能使用到索引,“%abc%”不能使用到索引,一次做培训的时候,给大家介绍“%abc%”不能使用索引的例子发现,在SQL SERVER 2005中是可能用到索引。在SQL SERVER 2005中查询优化器的确做了很大提高,以下是例子:

 

[[zping.com]]]中operator建立索引idx_operator:执行一下语句

   

select * from dbo.[[zping.com]]] where operator like '%882ed0e644a73010e6475b8c308a4%'

 

   执行计划:

  

SQL SERVER2005   Index Scan效率_SQL

  这里发现查询是可以用到索引Index Scan(索引扫描)的。但效率很低:

  看看统计信息: 

 

(4 行受影响)
表 '[zping.com]'。扫描计数 1,逻辑读取 4519 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

 

   这里看到搜索4行数据,用来4519次。看看索引信息

select  name,dpages,used from sysindexes where name like 'idx_operator'

 结果:  

name           dpages    used
idx_operator    4481    4519

 

  看看索引覆盖读取的IO数:

select operator from dbo.[[zping.com]]] where operator like '%882ed0e644a73010e6475b8c308a4%'

 

 统计信息:  

 

(4 行受影响)
表 '[zping.com]'。扫描计数 1,逻辑读取 4515 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

  这里可以发现:索引全部是4515页,有4行就通过RID搜索了4次数据页IO,结果是4519个IO

  IO信息: 4515+4=4519

包括根页,中间页和叶级页)。

 

  原因:

向前和向后搜索。这里使用类似'%abcd%'来查询。 优化器根据统计信息估计成本使用成本很低,就全扫描索引(包括根页,中间页和叶级页)

         低效
            Index Scan(索引扫描):就全扫描索引(包括根页,中间页和叶级页):         

        高效

向前和向后搜索 :



标签:lob,Index,读取,Scan,zping,SERVER2005,索引,operator,com
From: https://blog.51cto.com/u_16532032/9380489

相关文章

  • 微信小程序-wx:key的作用为什么不能使用index
    wxml中的代码为<viewclass="swiperContent"><swiper indicator-dots="true"autoplay="true"><swiper-itemwx:for="{{bannerList}}"wx:key="bannerId"><imagesrc="{{ite......
  • pd.read_csv( parse_dates=True) AttributeError: 'DatetimeIndex' object has no a
    pandas读取文件的read_csv()方法的parse_dates,index_col参数介绍 pd.read_csv(parse_dates=True)    data=pd.read_csv(f'datasets/{name}.csv',index_col='date',parse_dates=True)dt.weekofyear.to_numpy(),df_asset[“week_of_year”]=df_asset.index.we......
  • 小白scanf------新手必备
    兄弟们说实话,我感觉我今天特别的兴奋,刚刚发完一篇我就又发了一另一篇文章,(〜∇)〜(〜∇)〜(〜∇)〜像我这么难得的新人作者,来点赞来点关注,感谢各位帅哥美女。我们刚刚介绍了printf相关的一些知识。当然对于c语言关键的输入和输出,我们刚刚说了输出。接下来介绍的就是c语言中常见的输入......
  • python llama_index
    PythonLlamaIndexIntroductionPythonisapopularprogramminglanguageknownforitssimplicityandreadability.Ithasavastecosystemoflibrariesandframeworksthatmakeitsuitableforawiderangeofapplications,fromwebdevelopmenttodataana......
  • python 安装 llama_index
    Python安装llama_index简介在进行数据分析和机器学习的过程中,我们经常需要对数据进行索引和检索。其中,llama_index是一个强大的Python库,用于快速构建和管理索引。它提供了各种功能,包括全文搜索、近似搜索、范围搜索等。本文将向您介绍如何安装和使用llama_index。安装要安装l......
  • 一、@Configuration、@Conponent 、@ComponentScan 注解等
    一句话概括区别:@Configuration中所有带@Bean注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例。2.可以直接调用方法,不需要@Autowired注入后使用。@Conponent 声明为Spring的组件。修饰的类不会被代理,每实例化一次就会创建一个新的对象。2.一般情况下@Bean......
  • appscan的使用
    Appscan的使用一、Appscan(web安全漏洞扫描)Appscan支持SQL注入(SQL-injection)、跨站点脚本攻击(cross-sitescripting)、缓冲区溢出(bufferoverflow)及最新的Flash/Flex应用及Web2.0应用曝露等方面安全漏洞的扫描。能够提供详细的漏洞公告和修复建议。二、工作原理通过搜索(爬......
  • C6031 返回值被忽略:"scanf"解决办法【C语言】
    环境vs2022报错C6031返回值被忽略:"scanf"解决办法【C语言】解决2.在禁用特定警告中添加4996,6031原因因为在ANSIC中没有scanf_s(),只有scanf(),但是scanf()在读取时不检查边界,所以可能会造成内存泄露......
  • scanner
    packagecom.zzl.scanner;importjava.util.Scanner;publicclassDemo1{publicstaticvoidmain(String[]args){//创建一个扫描器对象,用于接收键盘数据Scannerscanner=newScanner(System.in);System.out.println("使用next方式接收");//判断用户有没有输入字符串......
  • 文件IO-fwrite-fread-fscanf-fflush
    fwrite把ptr所指向的数组中的数据写入到给定流stream中。size_tfwrite(constvoid*ptr,size_tsize,size_tnmemb,FILE*stream)参数ptr--这是指向要被写入的元素数组的指针。size--这是要被写入的每个元素的大小,以字节为单位。nmemb--这是元素的个数,每个元......