易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL 2005与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后,如果在现有的分区表上建
立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。如果你觉得我的非分区索引无法对起子分区。
  分区表效率问
题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于
未分区表的相同语句。但是随着数据量的增大,这种成本差距会逐渐减小,趋于


相关文档:

SQL Server 2008 下的备份和日志收缩

在SQL Server 2008下,网上以前流行的截断日志并收缩文件的方法不适合了,报语法错误。
同时因为我的数据库日志增长非常快,大概每天在1G以上,因此必须对其进行收缩。
经过在系统上的测试,感觉用SQL SERVER的维护计划更可行,现将操作方式简介如下:
注:下面的说明中也提到了使用差异备份,因为数据库文件增长也非 ......

SQL Server DBCC命令


◆1.DBCC CacheStats :显示存在于当前 buffer Cache 中的对象的信息,例如 :hitrates 编译的对象和执行计划
 
DBCC CACHESTATS
 
  从这个命令可以得到一些关键的统计信息:
  Hit Ratio:显示特定对象可以在Sql Server的缓存中被命中的百分比,这个数值越大,越好
  Object Count:显 ......

在打包程序中自动安装SQL Server数据库

1、创建安装项目“Setup1”安装项目
在“文件”菜单上指向“添加项目”,然后选择“新建项目”。
在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在&ldquo ......

Hibernate SQL方言


RDBMS

方言

DB2

org.hibernate.dialect.DB2Dialect

DB2 AS/400

org.hibernate.dialect.DB2400Dialect

DB2 OS390

org.hibernate.dialect.DB2390Dialect

PostgreSQL

org.hib ......

关于SQL SERVER时间格式使用的一些总结

---上个月月初第一天
select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )
---上个月月末最后一天
select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 112 )
1. 显示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select co ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号