数据库查询优化

昨天做了一个数据库查询优化,查询是一个跨5个表的操作,大概涉及20列左右。只是很简单的关联查询,并没有太多复杂条件,但是执行起来奇慢无比,这几个数据库中最大的库也只有60多万的记录,次大的表在40万左右,其他表的结构大概在几千条左右。查询一条记录的时间大约1分钟,很不正常。于是请教了高工,孙工等高人。得到如下建议
第一,做好主键和非聚集索引,认真查看执行计划,仔细阅读逻辑关系,很多时候,开销最大的未必是瓶颈,反倒是加入那些小表的某些查询条件,性能会好一点。
第二,降低事务的隔离度,虽然有风险,但是对性能提高很有好处。

SET TRANSACTION ISOLATION LEVEL

控制由连接发出的所有 Microsoft® SQL Server™ SELECT 语句的默认事务锁定行为。

第三,对业务逻辑实在不清楚的查询(比若昨天俺的查询),使用事务记录,然后根据查询的事务记录,使用优化索引向导来做。
Advertisements

发布者:supeng

peng.su@hotmail.com

加入对话

1条评论

留下评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s

%d 博主赞过: