优化数据库之前的10个问题

来源:互联网 发布:lighttpd服务器软件 编辑:程序博客网 时间:2024/05/04 22:00
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!

陈希章

原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/06/12/1218391.html
原文标题:优化数据库之前的10个问题
原文发表:2008/6/12 6:54:00

在优化你的数据库时,你可能没有用到这些细节的优点。以下是10个关于你的数据库性能的问题,需要你问问自己……

1. 假设你的数据库不需要存储特殊字符的能力,尤其是Unicode标准中规定的那些字符,你有没有在系统中把nchar类型替换成char之类的各种适用的字段类型?

2. 你是不是在用smalldatetime类型,而不是datetime?如果你不清楚这两种类型有什么区别,这是一个简单介绍:smalldatetime类型可以存储1900年1月1日至2079年6月6日的日期,而datetime类型把这一范围扩展到了1753年1月1日至9999年12月31日。你需要这么大的范围吗?

3. 你是不是例行公事地使用bit类型来代替smallint类型?如果是这样,你知道其中的代价吗?这对你的程序可能并没有影响,但smallint类型可以建立索引,bit类型不行。

4. SQL Server 2000在bit类型字段中允许空值,而且是默认的。有人希望这样,也有人不希望这样。

5. 你如何处理字段中的空值? 默认方式是允许空值,但更好的办法是禁止空值,允许零长度的字符串。

6. 你想过表中能容纳的最多行数吗?你比较过这个数值和数据页的大小8060字节吗?

7. 你有没有好好利用标准字段? (去看看菜单里的工具->选项->标准字段)

8. 你的表中有没有一个时间戳字段? 如果没有的话,你知道什么时候这种字段会有用处吗?

9. 你的表都有区块索引吗?你知道一个表什么时候应该有区块索引,什么时候一文不值吗?

10. 你在命名存储过程时有没有用sp_前缀?你有没有意识到这样做给性能带来了什么影响?

值得一提的是,SQL Server 2005自带了一个数据库引擎优化顾问,能够帮助扫描数据库的设计,并且提出一些建议。

另外,第三方厂商也开发了一些比较不错的工具,例如SSW SQL Auditor作者:陈希章
出处:http://blog.csdn.net/chen_xizhang
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原创粉丝点击