- 1、本文档共105页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(六)集函数 如果使用集函数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 当存储过程第一次执行的时候,它的语法树装载到存储过程缓冲区,然后优化器生成一查询计划, 执行完成后,只要有空间,存储过程仍保存在缓冲区中, 存储过程是不可再重入的,即每一时间只有一个用户使用, 多个用户可以同时执行存储过程,每个用户取得自己的查询计划,
您可能关注的文档
最近下载
- CJJ_T 135-2009 (2023年版) 透水水泥混凝土路面技术规程正式版.pdf
- 肠道门诊知识考试试题及答案.doc
- 义务教育语文课程(2022版).pdf
- 2023.05.14 金沙之行考察报告(2023.05.14 改).pptx VIP
- 开放系统23661《计算机组网技术》期末机考真题及答案(第101套).docx
- 2022高二【语文(统编版)】大卫·科波菲尔(第二课时)课件.pptx
- 民事起诉状(征信名誉权纠纷).docx
- 第1讲 E.K.Strong销售技巧(上).doc VIP
- AQ1018-2006《矿井瓦斯涌出量预测方法》.pdf
- 吴兴区湖州市第十一中学教育集团社团类初中科学微型校本课程教材.pdf
文档评论(0)