一、SQLServer与Analysis Services排序规则的差异。
通常情况下数据库管理员可以分别为数据库引擎和Analysis Services分别设置排序规则。如在SQLServer2008服务器中,数据库引擎支持两组排序规则,分别为Windows排序规则与SQLServer服务器排序规则。默认情况下,如果在英文环境下部署SQLServre数据库服务器的话,则其采用的是SQLServer排序规则。而如果采用其他版本的数据库系统,如在中文环境下部署中文版本的数据库系统,则这个排序规则就采用的是Windows排序规则,即由数据库服务器操作系统的区域设置来决定具体的排序规则。而对于Analysis Services服务来说,其支持一组排序规则,即Windows排序规则。虽然说,数据库管理员在数据库安装过程中,可以为这两个服务器配置不同的排序规则。如SQLServer采用SQLServer排序规则,而Analysis Services采用Windows排序规则。这在技术上是允许的。但是这会造成一些不利的后果。由于两者的排序规则不同,那么最后显示的结果很有可能因为排序规则的不同,而导致显示内容的不同。为此在规划数据库应用的时候,如果需要同时安装这个两个应用服务,那么笔者的建议是在安装SQLServer数据库时,为这个两个服务设置相同的排序规则。由于Analysis Services只支持Windows排序规则,为此两者都需要同时采用Windows排序规则。以确保数据库引擎与Analysis Services之间显示结果的一致性。
需要强调的是,这是一个柔性的规则。即即使同时部署这两个应用服务,而他们采用不同的排序规则,在技术上来说是不会遇到问题的。主要是看用户能否接受两个服务显示结构的不一致。如果可以接受的话,那么就不需要遵守这个规则,可以从性能或者其他方面来综合考虑所采用的排序规则。但是如果不可以接受的话,那么就需要严格遵守这一规则,即为两个服务都配置Windows排序规则。
二、决定排序规则的一些参考。
在符合上面这个基本的原则后,数据库管理员就需要结合用户的需求与数据库性能方面的要求,来综合考虑,最后决定需要采用的排序规则。这具有一定的难度,不过下面的这些规则数据库管理员可以拿来参考。
参考规则一:能用二进制排序规则最好使用二进制排序规则
二进制排序规则由于其处理简单,为此如果采用二进制排序规则的话,可以在很大程度上提升数据库的性能。特别是如果数据库中本身就是以二进制的形式来存储数据,那么在利用二进制规则来排序的时候,相对来说,要比其他的排序规则速度更加的快。而且其也不怎么会受到语言的影响。所以,在数据库部署中,能够使用二进制排序规则,就尽量使用二进制排序规则。或者说,这是数据库管理员首选的选择。除非这个二进制排序规则与用户的需求相矛盾,或者跟其他需求有难以调和的冲突时,才采用其他的排序规则。特别是对于数据库性能有比较高的要求时,这个二进制是一个首要的选择。(IT专家网独家:合理配置二进制排序规则)
但是并不是说在任何情况下采用二进制都会起到不错的效果。如在数据库中,既有二进制存储的数据,又有其他格式存储的数据。如字符型的数据,在SQLServer数据库中分为nchar(二进制格式的数据)与char(ANSI格式的字符数据)两种。如果采用二进制排序规则,对这两种不同类型的数据采用的是不同的处理规则。为此即使两张表中的记录完全相同,但是其采用的字符格式不同,其最后的结果也有可能会不同。所以在遇到这种情况时,数据库管理员要么想方设法统一字符集,以达到统一排序结果的目的。要么数据库管理员就需要向用户确认,是否允许这个不同排序结果的存在。如果允许的话,那么采用二进制排序规则没有问题。但是如果不允许的话,那么之能够放弃采用二进制排序规则,而需要采用SQLServer等其他的排序规则。
参考规则二:适合采用Windows排序规则的情况
一般满足以上三个条件的任何一个条件的情况下,适合采用Windows排序规则。
一是文章一开头提到的那个基本原则。即在数据库部署中同时存在Analysis Services与数据库引擎(数据库引擎是必须的,而Analysis Services是可选的),同时又不允许他们排序结果不一致的情况存在。此时最好能够采用Windows排序规则。原因很简单,因为Analysis Services只支持Windows排序规则,为了确保排序结果的一致性,也需要将数据库引擎的排序结果设置为Windows排序规则。
二是在数据库中同时存在nchar/nvarchar(二进制格式的数据)与char/varchar(ANSI格式的数据)的情况下,而且在应用程序中可能需要混合使用他们。在这种情况下最好采用Windwos排序规则,以便在各个数据类型之间进行一致的比较。如果采用二进制排序规则或者SQLServer排序规则,由于他们对这些不同的数据类型比较时会采用不同的机制,为此往往会有不同的排序结果。在遇到这种混合使用的情况,最好采用的是Windows排序规则,以统一最后的排序结果。
三是在应用程序中只使用char/varchar数据类型,并且在应用程序的SQL语句中,很少使用Like操作符号时,可以考虑采用Windows排序规则。此时可以在最大程度上消除排序结果的不同。
在考虑是否需要采用Windows排序规则的时候,只需要对以上的三条规则对号入座即可。如果可以对号入座的,那么就采用这个Windows排序规则。如果不能够对号入座的,那就考虑采用其他的排序规则。
参考规则三:适合采用SQLServer排序规则的情况。
在什么情况下比较适用SQLServer排序规则呢?或许这个问题回答起来,婆说婆有理,公说公有理。很难有一个统一的答案。笔者认为,采用SQLServer排序规则,即有利,也有弊。数据库管理员需要在这个利与弊之间旬的一个均衡点,以平衡各方面的需求。
之所以考虑采用SQLServer排序规则,笔者认为最大的好处就是可以提高LIKE等操作符的执行性能。也就是说,如果在查询语句中使用了Like等类似的关键字,而且同时使用了Order BY排序子句时,如果采用SQLServer排序规则的话,那么性能会比其他排序规则要高。而且满足条件的记录越多,这个排序效果会越好。所以,在数据库设计中需要用到比较多的Like操作符,而且数据库管理员又需要提升数据库性能的时候,那么就需要考虑是否需要采用这个SQLServer排序规则。注意如果在Where语句中使用了这个Like操作符,而且这个操作符所涉及到的字段设置了索引,其查询效果并不会因为有了这个索引而提高多少。也就是说,Like等类似的操作符与索引之间的配合,并不能够起到1+1大于2的效果,有时候甚至会起到反面效果。此时,如果更改这个排序规则,反而可以起到索引不能够起到的效果。
不过采用SQLServer排序规则也有很多的缺陷。最大的缺陷就是数据库的排序规则与操作系统或者其他应用程序的排序结果不一致。如现在数据库中采用的是SQLServer排序规则,对某张表进行了排序。然后将这张表导入导了Excel表格中,并对其按相同的规则进行重新排序。此时两张表记录的显示顺序可能是不同的。这主要要是因为区域设置的不同而造成的。如果采用SQLServer排序规则的话,这种情况无法避免。除非企业中所有的电脑、数据库系统都采用英文环境,并且配置相同的区域设置。为此,只有用户可以允许数据库系统与操作系统或者其他应用程序排序结果的不一致性的情况下,可以使用这个SQLServer排序规则。或者说,数据库管理员不关系Windows排序规则中的语言比较语义的情况下,同时又存在不较多的Like操作符时,可以考虑采用SQLServer排序规则。
在以上的分析中可以看出,在考虑采用什么样的排序规则时,主要考虑的是两个方面的因素,一是排序的结果,二是服务器的性能。也就是说,用户是选择在数据库服务器与其它应用程序之间排序结果的一致性,还是选择提升服务器的性能。数据据管理员确认完这个问题之后,那么就可以做出符合用户需求的判断了。

转载于:https://blog.51cto.com/wwwjjj/186638

SQL Server 2008服务器安装设置向导相关推荐

  1. 在 MOSS2007 集成 SQL Server 2008 报表服务

    一.准备环境 1.下载报表服务外接程序 用于 Microsoft SharePoint 技术的 Microsoft SQL Server 2008 SP2 Reporting Services 外接程 ...

  2. 安装 SQL Server 2008 R2 的硬件和软件要求(转)

    以下各部分列出了安装和运行 SQL Server 2008 R2 的最低硬件和软件要求.有关 SharePoint 集成模式下的 Analysis Services 的要求的详细信息,请参阅硬件和软件 ...

  3. 如何卸载 SQL Server 2008实例

    卸载一个独立的 SQL Server 2008年实例之前应考虑的问题 我们建议您使用添加或删除程序功能在控制面板中卸载 SQL Server. 在计算机上运行 SQL Server 2008年与早期版 ...

  4. PowerShell 2.0 实践(十二)管理 SQL Server 2008 R2(1)

    DBA可以使用的工具很多,对于SQL Server来说,有查询分析器.事件探查器.命令行工具等,其中SQL语句是重中之重,但是PowerShell的出现使得DBA又多了一种选择. 测试脚本下载 本系列 ...

  5. sql server 2008连接oracle操作步骤详细记录,SQLServer连接Oracle详细步骤

    我们知道SQL Server和Oracle其实很多原理都类似.特别是一些常用的SQL语句都是按照标准来.所以它们也可以有一定的互操作性的.这里 我们知道SQL Server和Oracle其实很多原理都 ...

  6. [转]实战 SQL Server 2008 数据库误删除数据的恢复

    实战 SQL Server 2008 数据库误删除数据的恢复 关键字:SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我,他用delete ...

  7. 基于Sql Server 2008的分布式数据库的实践(一)

    原文 基于Sql Server 2008的分布式数据库的实践(一) 配置Sql Server 2008(Win7) 1.打开SQL server2012,使用windows身份登录 2.登录后,右键选 ...

  8. 在SQL Server 2008中配置文件流(FILESTREAM)

    SQL Server 2008推出了一个新的特性叫做文件流(FILESTREAM),它使得基于SQL Server的应用程序可以在文件系统中存储非结构化的数据,例如文档.图片.音频.视频等等.文件流主 ...

  9. SQL Server 2008高可用性系列:数据库快照

    SQL Server 2008高可用性系列:数据库快照 http://database.51cto.com  2010-09-13 14:45  我爱菊花  博客园  我要评论(0) 摘要:我们今天要 ...

最新文章

  1. 电子界卡组构建2019_2018–2019年构建现代Android应用程序的路线图
  2. sqlserver执行更新语句失败报错42S22
  3. python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决
  4. Hadoop(一)基础概念
  5. 10.7 csp-s模拟测试63 Median+Game+Park
  6. 计算机一级b必背知识点,全国计算机等级考试B经典必考资料_知识点总结.doc
  7. Jmeter中Websocket协议支持包的使用 (转)
  8. 常用电子元器件之一:开关
  9. Linux epoll模型详解
  10. amos调节变量怎么画_AMOS结构方程教程,SPSS调节效应分析操作与结果的详细解读...
  11. pyltp依存句法分析_pyltp的简单使用
  12. Jenkins下载安装配置教程(官网)
  13. 微信nickname乱码 php,php版微信公众平台回复中文出现乱码问题的解决方法
  14. CSS技巧性实现多边形及各种条纹渐变图形
  15. Smatch 最基础的应用
  16. BUUCTF RE WP31-32 [WUSTCTF2020]level1、[GWCTF 2019]xxor
  17. xdoj系统_【战疫情】西电计科院教学在行动(6)——对话全面线上服务的万波老师...
  18. TFN F7 M1 光时域反射仪 多模OTDR 光纤测试仪 高精度 触摸屏 波长850/1300nm
  19. 取得WINDOWS的管理员权限
  20. 基于AM335X开发板 ARM Cortex-A8——Acontis EtherCAT主站开发案例

热门文章

  1. vue-cli初始化项目时localhost打不开
  2. C#用IIS发布网站后localhost打不开127.0.0.1可以打开
  3. Python:flatten()函数用法
  4. Java - 说一下表达式语言(EL)的隐式对象及其作用。
  5. INS/GPS 制导的 SDB 炸弹投放域计算与分析
  6. html按钮超链接到微信,技巧|教你给微信聊天文字加上超链接,装逼小技能!...
  7. 使用晨曦记账本,认识记账的重要性
  8. 图片清晰度评价-java实现
  9. 【源码】应用于各类工业控制的通用PID调谐器仿真设计
  10. linux debian vi,Debian 安装 vim