• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
敬YES
Now Or Never
博客园    首页       联系   管理    订阅  订阅
SQL Server 2008 R2学习心得

最近有幸参加了SQL Server2008 R2的学习,有几点自己感觉比较实用的知识点以及技巧,和大家分享一下。


1,备份时勾选checksum选项。

数据库备份时偶尔会产生损坏页,而且在访问到损坏页之前往往不容易被我们发现。因此备份后首先应该记得做的一件事就是验证一下,在早期版本的SQL Server中我们可以用如下命令进行检测:
  dbcc checkdb 数据库名
在SQL server2005以后的版本中备份为我们提供了checksum选项,备份时同时进行检测,保证数据的正确性和完整性。

2.时间类型
提到时间类型,我们常用的就是datetime类型,当计算时间间隔的时候有两种常用方法:
①采用>=datetime1 and <= datetime2+' 24:00:00',这种方式问题倒是不太大;
②采用 convert(datetime1)方式转换为日期,然后进行比较。这种方式的弊端在于会导致索引无效。解决方案是采用计算列,即,添加一个列为convert(colname),然后在新列上建索引。这样就可以避免修改程序来挽回索引了。

在SQL Server2008中,为了解决这些问题,有了更细的时间类型:date、time、datetime2(精度更高)、datetimeoffset(带时区)。

3.其他备份选项:
 ①备份压缩:在备份的同时对数据进行压缩,当数据量较大的时候可以为企业节省服务器资源。
 ②碎片处理:对于数据库页进行碎片整理,提高性能。
 ③索引视图:一般的视图中是没有数据的,是一张虚表。但是索引视图中是包含数据的,这样可以提高检索性能,当然也会浪费了部分空间。是典型的以空间换时间做法。

4.稀疏列:
当列为变长类型时null值不消耗空间,当为定长类型时null值消耗空间。这种做法实际上抛弃了范式规则,来提高读取速度。不过一般建议当该列null值大于70%时才定义为稀疏列,否则所占据的空间反而更大。

5.页压缩、行压缩
SQL Server2008提供了压缩功能来节省空间,其中行压缩针对定长数据,页压缩包括行压缩,且重复值只存一次,其他的只存物理指针。

6.DAC
主要用来生成脚本,优点是可以包含表之间的依赖关系、结构信息等,但是不包括实际数据。

7.在虚拟机上架构SQL Server要记得打开Named Pipes协议。否则不能正常运行。

8.文件组:
建立数据库数据表之后将文件进行分组、规划。一般企业经常将整个数据库放在一个文件中,这是不合理的。或者有些企业建立多个数据库来分开管理,但是当服务器做镜像或者迁移时会存在建立索引的麻烦。所以建议使用文件组管理。

9.开发人员规范

 ①写INSERT以及SELECT 要写明具体字段名称,否则一旦表字段进行了调整,就会带来修改客户端程序的麻烦。

 ②存储过程名称不要以sp_开头,而要以usp_开头。因为sp_开头的存储过程会被当做系统自带内容,降低性能。

作者:陈敬(公众号:敬YES)
出处:http://www.cnblogs.com/janes/
博客文章仅供交流学习,请勿用于商业用途。如需转载,请务必注明出处。

posted on 2010-12-06 14:25  敬YES  阅读(3371)  评论(2)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3