(六)集函数 如果使用集函数max和min的列上有索引, 对于min,它读取索引的根页的第一个值, 对于max则是直接到索引的结尾来找最后一条记录。 但在下面情况下,可能不采用上面的优化方法: max或min的参数表达式不是一个列。 max(numeric_col*2)和max(numeric)*2,假设在numeric_col上有非聚集索引,则第一个例子需要对非聚集索引的叶子层扫描,第二个例子则可以直接定位。 max或min所使用的列不是索引的第一列。 对于非聚集索引,必须对索引的叶子层扫描, 对聚集索引,则必须执行表扫描。 在查询中有其他集函数或group by子句 因此,如果要取得更好的性能,集函数最好分开使用,例如: select max(price) , min(price) from titles 即使在price上有索引,该查询执行时也会做全表扫描。 可以把查询改写为: select max(price) from titles select min(price) from titles (七)连接和数据类型 当进行连接操作的两列的数据类型不相同时,其中的一列必须转化为另一列的数据类型。这时,查询优化器就不能选择做转换的列上的索引。 例如: select * from small_table, large_table where small_table.float_column = large_table.int_column 这时,ASE就会把int列转换成float列, 这样large_table.int_column上的索引就不能使用。 因此在设计SQL语句时,尽量避免数据类型的问题。 (八)参数和数据类型 优化器不能使用转换后的参数的值,因此最好使参数与要进行比较的列具有相同的数据类型。例如: create proc p @x varchar(30) as select * from tab where char_column = @x 该存储过程的性能就不如下面定义的存储过程: create proc p @x char(30) as select * from tab where char_column = @x 本节总结 一、性能不佳的征兆 查询速度慢 —比预计的慢了许多 —比类似的查询慢 —突然慢了许多 存储过程比同样的即席查询馒 由查询计划发现,优化器不使用索引而进行表扫描 二、可能的解决方法 1.考察Where子句 验证Where子句是有效的SARG 增补SARG为优化器提供更多的选择 确认JOIN列有匹配的数据类型 把同时使用MIN,MAX的语句分开 在MIN,MAX语句中不要包含表达式 2.执行showplan 考察索引的利用情况 确认在预想的列上确实利用了索引 可以用 from tabal_name (index ind_name) 强制使用某个索引 索引值是否包含太多重复(比如,性别) 索引的宽度是否太大, 索引是否可供order by 和集函数使用 确认索引的升序降序 ASE11.5 支持 order by desc子句 争取利用索引覆盖 -组合索引应利用领头列 关于存储过程 注意数据类型的匹配 应在必要时进行重新编译 3.编写SQL语句时的注意事项: !! 在搜索子句的列名边要避免函数、算术操作符和其它的表达式 避免不兼容的数据类型 使用复合索引的第一个列名 检查showplan的输出,看使用了哪些索引和关键字。 给优化器提供尽可能多的SARG or策略在被访问的数据页上维护一共享锁所以会影响并发性在使用隔离级别3或holdlock子句的情况下,要避免or查询(可考虑用union selects代替or) 练习 练习\ex2603.SQL 目标 修改操作 高级优化技术 T-SQL使用技巧 任务 通过建立唯一聚簇索引和非唯一的聚簇索引,了解两种不同修改方式 熟悉各种高级优化技术 掌握T-SQL使用技巧 谢谢大家! 感谢您的观看! 26.1.10 存储过程的优化 p543 当存储过程第一次执行的时候,它的语法树装载到存储过程缓冲区,然后优化器生成一查询计划, 执行完成后,只要有空间,存储过程仍保存在缓冲区中, 存储过程是不可再重入的,即每一时间只有一个用户使用, 多个用户可以同时执行存储过程,每个用户取得自己的查询计划,
您可能关注的文档
- 2018中考物理规范答题要求_精选.ppt
- 2018中美贸易现状及分析报告模板.ppt
- 147358_银行现金出纳柜台的安全防护与施工.doc
- APA驾驶员辅助系统方案.ppt
- APS高级生产排程系统方案.ppt
- C51单片机交通灯要点说明.doc
- ch03_汽车空调制冷系统构造(10级使用).ppt
- C语言大作业——管道瞬变流动分析报告.ppt
- c语言课程设计———学生成绩管理系统方案.doc
- DEA数据包络分析(简明易懂版).ppt
- 初中九年级英语Unit 13环境保护主题听说整合教学设计.docx
- 85分式方程及其解法课件人教版数学八年级上册.pptx
- 基于核心素养的博物馆主题说明文写作教学设计与实施——以九年级英语为例.docx
- 53一次函数的意义第课时课件浙教版八年级数学上册.pptx
- 大单元视角下“人民民主政权的巩固”与历史关键能力进阶教学设计——以初中历史中考复习课为例.docx
- 五年级数学下册典型例题解析人教版期末重点攻克.pptx
- 小学四年级信息技术《智启信息时代:查找网上信息的基石》教学设计及反思.docx
- 大疆域·大人口·大战略:中国国家空间认知的初步建构.docx
- 人教版(一年级起点)小学英语四年级上册Revision 1 Lesson 2教学设计.docx
- 大单元结构化复习:旧民主主义革命时期(18401919)的内忧外患与救亡图存.docx
原创力文档

文档评论(0)