博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库点滴积累——查询
阅读量:5137 次
发布时间:2019-06-13

本文共 693 字,大约阅读时间需要 2 分钟。

1、查询的时候尽量按照复合索引的顺序来做条件查询,(比如IXC中spInterActiveInstance_GetByIDToStat条件and ProcessState<>99的位置)

2、如果在程序中有For或者Foreach,在存储过程中又有If  Exists,那么就要看是否可以再表中加入复合索引了,If Not Exists可以转换为If Exists来使用索引;

3、在查询中尽量少使用*或者全表字段来查询数据。第一、返回的数据集比较大;第二,产生更多的IO操作,第三,会使得Bookmarklookup的查询计划,性能有所下降;如果能使用到覆盖索引来查询是最理想的。

4、下面关于查询的性能比较

1、返回行数较多:索引覆盖>聚集索引>表扫描>堆集的非聚集索引>聚集的非聚集索引

2、返回行数较少:索引覆盖=聚集索引>堆积的非聚集索引>聚集的非聚集索引>表扫描

3、比较难理解的可能是:堆积的非聚集索引>聚集的非聚集索引。下面是个人理解,堆表就是没有聚集索引的表,实质上就是在一个没有聚集索引的表中加入非聚集索引和一个在聚集索引中加入了同一字段的非聚集索引;(聚集)非聚集索引-定位器-聚集索引-Bookmark lookup-返回指定的字段值,(堆集)非聚集索引-定位器-对应的数据行的指针-返回指定字段值;

5、不要再where子句中的列名加函数;如果对列值进行判断,尽量把操作符(比如+、-、*等)放到=号的右边

转自

转载于:https://www.cnblogs.com/zhijianliutang/archive/2012/01/20/2328305.html

你可能感兴趣的文章
文本隐藏(图片代替文字)
查看>>
java面试题
查看>>
提高码力专题(未完待续)
查看>>
pair的例子
查看>>
前端框架性能对比
查看>>
uva 387 A Puzzling Problem (回溯)
查看>>
12.2日常
查看>>
Oracle中包的创建
查看>>
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
STM32F10x_RTC秒中断
查看>>
display:none和visiblity:hidden区别
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>
构造者模式
查看>>
http和https的区别
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>