如何让你的运行得更快更有效率牛
高平历史网 2021-10-29 05:48:15
分析: 这是一个合理的组合索引。它将date作为前导列,使每个SQL都可以利用索引,并且在第一和第三个SQL中形成了索引覆盖,因而性能达到了最优。 5.总结: 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的;合理的索引设计要建立在对各种查询的分析和预测上。一般来说: ①.有大量重复值、且经常有范围查询(between, , ,=, =)和order by、group by发生的列,可考虑建立群集索引; ②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引; ③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。 二、不充份的连接条件: 例:表card有7896行,在card_no上有一个非聚集索引,表account有191122行,在account_no上有一个非聚集索引,试看在不同的表连接条件下,两个SQL的执行情况: select sum(ount) from account a,card b where rd_no = rd_no(20秒)
读书作为邓小平的一个爱好并不广为人知 将SQL改为: select sum(ount) from account a,card b where rd_no = rd_no and count_no=count_no( 1秒)
分析: 在第一个连接条件下,最佳查询方案是将account作外层表,card作内层表,利用card上的索引,其I/O次数可由以下公式估算为: 外层表account上的22541页+(外层表account的191122行*内层表card上对应外层表第一行所要查找的3页)=595907次I/O在第二个连接条件下,最佳查询方案是将card作外层表,account作内层表,利用account上的索引,其I/O次数可由以下公式估算为: 外层表card上的1944页+(外层表card的7896行*内层表account上对应外层表每一行所要查找的4页)= 33528次I/O 可见,只有充份的连接条件,真正的最佳方案才会被执行。 总结: 1.多表操作在被实际执行前,查询优化器会根据连接条件,列出几组可能的连接方案并从中找出系统开销最小的最佳方案。连接条件要充份考虑带有索引的表、行数多的表;内外表的选择可由公式:外层表中的匹配行数*内层表中每一次查找的次数确定,乘积最小为最佳方案。 2.查看执行方案的方法-- 用set showplanon,打开showplan选项,就可以看到连接顺序、使用何种索引的信息;想看更详细的信息,需用sa角色执行dbcc(3604,310,302)。 三、不可优化的where子句 1.例:下列SQL条件语句中的列都建有恰当的索引,但执行速度却非常慢: select * from record where substring(card_no,1,4)=\'5378\'(13秒) select * from record where amount/30 1000(11秒) select * from record where convert(char(10),date,112)=\'\'(10秒)
南通卵巢炎治疗费用多少钱腹泻该怎么治疗
北京看白癜风专科医院
- 上一页:如何让你的运行得更快更有效率覆盖
- 下一页:如何让你的运行得更快更有效率呢
- 最新亚军赔率出炉:太阳升第2追平绿军+逼近勇士,热火第4灰熊第6
- 女人们“唇型”一般分这5种,3种好看,2种丑,不妨自测一下自己
- 西安旅游职业中专研议陕西省高水平示范性中等职业学校名
- 袁泉女儿正面照曝光,深眼窝似妈妈翻版,才9岁就是高冷气质缪斯
- 天德钰快充协议芯片产品线成熟 能够满足客户多种不同需求
- 恋就是让一个笨手笨脚的小女孩有人照顾 有人惦记 如果让她哭 你算什么男子汉 你算大笨蛋 艾特ta热门
- 堪比好莱坞大片,看老黄如何运用三十六计,破2022高考数学分析的堡垒
- 儿歌多多魔力公主西西 公主换装记 宝宝来帮公主换漂亮的衣服 儿歌多多 星河知识计划 智慧生活星 抖音
- 一个有财多金,一个年轻俊朗,两男共享一位妻子,却22年不曾发现
- 戏仿手臂该怎么画?戏仿手臂简单画法
- 法兴:美联储已经越过了“硬着陆”分界线,加息幅度则会有多高?
- 浙江大手笔可用!签约小外援,补强教练组,刘维伟辞职惊醒管理层