<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="海西数据总结SQL Server数据库的高性能优化经验" id="card1">
<p> 游客</p><p>
标题:海西数据总结SQL Server数据库的高性能优化经验<br/>
正文:<br/>
优化数据库的注意事项： 　　1、关键字段建立索引。 　　2、使用存储过程，它使SQL变得更加灵活和高效。 　　3、备份数据库和清除垃圾数据。 　　4、SQL语句语法的优化。(可以用Sybase的SQL Expert，可惜我没找到unexpired的序列号) 　　5、清理删除日志。 　　SQL语句优化的基本原则： 　　1、使用索引来更快地遍历表。 　　缺省情况下建立的索引是非群集索引，但有时它并不是最佳的。在非群集索引下，数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。 　　一般来说： 　　①.有大量重复值、且经常有范围查询(between, &amp;gt;,&amp;lt; ，&amp;gt;=,&amp;lt; =)和order by、group by发生的列，可考虑建立群集索引 　　②.经常同时存取多列，且每列都含有重复值可考虑建立组合索引; 　　③.组合索引要尽量使关键查询形成索引覆盖，其前导列一定是使用最频繁的列。 　　2、IS NULL 与 IS NOT NULL 　　不能用null作索引，任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下，只要这些列中有一列含有null，该列就会从索引中排除。也就是说如果某列存在空值，即使对该列建索引也不会提高性能。任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的。 　　3、IN和EXISTS 　　EXISTS要远比IN的效率高。里面关系到full table scan和range scan。几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。 　　4、在海量查询时尽量少用格式转换。 　　5、当在SQL SERVER 2000中 　　如果存储过程只有一个参数，并且是OUTPUT类型的，必须在调用这个存储过程的时候给这个参数一个初始的值，否则会出现调用错误。 　　6、ORDER BY和GROPU BY 　　使用ORDER BY和GROUP BY短语，任何一种索引都有助于SELECT的性能提高。注意如果索引列里面有NULL<br/><a href="http://www.xmwzidc.com/blog/wap.asp?mode=WAP&amp;act=View&amp;id=513&amp;Page=1">[&lt;&lt;]</a><a href="http://www.xmwzidc.com/blog/wap.asp?mode=WAP&amp;act=View&amp;id=513&amp;Page=1">[[1]]</a><a href="http://www.xmwzidc.com/blog/wap.asp?mode=WAP&amp;act=View&amp;id=513&amp;Page=2">[2]</a><a href="http://www.xmwzidc.com/blog/wap.asp?mode=WAP&amp;act=View&amp;id=513&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=513">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=513">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://www.xmwzidc.com/blog/wap.asp">首页</a>
</p>
</card>
</wml>