SQL编程中的潜在计算资源消耗要素:
排序操作,是否可使用索引的已排序特性?
类型转换,是否设置了不恰当的变量类型?
函数调用,是否函数或表达式导致索引的失败?
优化器工作,统计是否正确以及优化器
发现表、索引的低密度造成的IO、CPU问题
建议SQL编程规范
避免不必要的SQL(例:存在性测试)
减少返回的行(例:那些没有where的SQL)
仅选择必要的列(例:select *...)
单行返回和游标
避免排序(例:distinct、union)
使用索引数据排序(例:使用索引列排序或分组)
使用嵌入视图
避免数据类型转换(列和变量在类型、长度的比较)
在索引列上进行表连接
连接查询的结果集避免在多(表)列上排序
小心使用like匹配,避免前like,可使用in替换?
尽量使用exist
避免使用NOt
避免在对比中在列上使用表达式(可能索引失效)
限制不必要函数使用(计算资源、索引限制),设计相关?