b) 索引的使用规范 i 索引的创建要与应用结合考虑建议大的OLTP表不要超过个索引 ii 尽可能的使用索引字段作为查询条件尤其是聚簇索引必要时可以通过index index_name来强制指定索引 iii避免对大表查询时进行table scan必要时考虑新建索引 iv 在使用索引字段作为条件时如果该索引是联合索引那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引否则该索引将不会被使用 v 要注意索引的维护周期性重建索引重新编译存储过程 c)tempdb的使用规范 i 尽量避免使用distinctorder bygroup byhavingjoincumpute因为这些语句会加重tempdb的负担 ii 避免频繁创建和删除临时表减少系统表资源的消耗 iii在新建临时表时如果一次性插入数据量很大那么可以使用select into代替create table避免log提高速度如果数据量不大为了缓和系统表的资源建议先create table然后insert iv 如果临时表的数据量较大需要建立索引那么应该将创建临时表和建立索引的过程放在单独一个子存储过程中这样才能保证系统能够很好的使用到该临时表的索引 v 如果使用到了临时表在存储过程的最后务必将所有的临时表显式删除先truncate table然后drop table这样可以避免系统表的较长时间锁定 vi 慎用大的临时表与其他大表的连接查询和修改减低系统表负担因为这种操作会在一条语句中多次使用tempdb的系统表 d)合理的算法使用 根据上面已提到的SQL优化技术和ASE Tuning手册中的SQL优化内容结合实际应用采用多种算法进行比较以获得消耗资源最少效率最高的方法具体可用ASE调优命令set statistics io on set statistics time on set showplan on 等 [] [] |