Welcome 微信登录

首页 / 数据库 / MySQL / 四大方面详细讲述SQL2005与SQL2000的改进

本文从数据库设计、开发、DBA管理等四个方面叙述了SQL2005与SQL2000两个版本间的改进。 一、数据库设计方面 1、字段类型。 varchar(max) varchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。但是这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?是否碎片会引发效率问题?这都是需要进一步探讨的东西。 varbinary(max)代替image也让SQL Server的字段类型更加简洁统一。 XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 2、外键的级联更能扩展。 可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。但是再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SET NULL 和 SET DEFAULT 属性,能够提供能好的级联设置。 3、索引附加字段。 这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。 4、计算字段的持久化。 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。 5、分区表。 分区表是个亮点!从分区表也能看出微软要做大作强SQL Server的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQL Server2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。 但是需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。如果你觉得我的非分区索引无法对起子分区。 分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
  • 1
  • 2
  • 3
  • 下一页
【内容导航】
第1页:四大方面详细讲述SQL2005与SQL2000的改进第2页:四大方面详细讲述SQL2005与SQL2000的改进
第3页:四大方面详细讲述SQL2005与SQL2000的改进
使用批处理对MySQL进行数据批量操作SQL Server 2005的XML支持与异常处理相关资讯      SQL2005  SQL2000 
  • SQL2000在安装时提示挂起的解决办  (08/18/2007 07:35:54)
  • SQL2005 CompactEdition数据存储体  (04/18/2007 09:30:59)
  • VS2005+SQL2005 ASP.NET2.0数据库  (04/19/2007 06:53:08)
本文评论 查看全部评论 (0)
表情: 姓名: 字数