如何优化查询?(200分)

J

jiefeij

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库:SQL SERVER
数据量有几百万条记录。
现在查询速度特别慢,难以忍受。
希望大家给点好的意见。
 
适当的建索引
查询结果不要太多,多了肯定费时
 
TO TWOS:已经建立索引。
查询时用‘LIKE’时很慢,用‘=’还可以。ORECLE是不是会好些?
 
windows底下差不多
 
查询最好不用like,大数据量时!
 
其实数据表如何进行组织才是最重要的。
//几百万条记录
你就在设计软件时就要有目的的将其分表存放
这样,在某一种查询上,就会快多了。
 
查询时,要精确查询,确定范围,不要用模糊查询,这样数据太多,实在是让人无法接爱,
ORACLE在UNIX下速度相对快一点,更多的是稳定
 
1、设计表时,能够分开的数据就分开,不要全堆在一个表里。
2、避免复杂的嵌套查询、字符运算。
3、无法避免的复杂查询,可先预查询一下,得出中间数据,再做最终查询(这要依情况定)
4、自己写Transaction,不要用默认Transaction,在某些情况下会快些。
另外,比尔盖死的烂东西用于小场合还行,真正做正经事就别指望它了,这不是通过我们
技术上的努力能改变的,这是“色抠色蛙”本身的性能局限。
 
避免使用LIKE、IN、NOT IN 之类的关键字
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1295933
 
比如可以按日期建主键的,最好按日期建主键,
你说的like慢?是不是因为查出来的记录多,这是没办法优化的,
你只有控制查询条件,每次查询不太多应该不会慢的。
另外你可以看看查询分析器里的执行计划,它给出了你查询时的性能分析。
 
谢谢各位!
 
顶部