SQL Server 2008 R2中对多维数据排序注意事项
2010-06-22 00:00:00 来源:WEB开发网在多维数据中,Windows排序规则也是起效的。简单的说,Windows排需规则根据关联的Windows区域设置来定义字符数据的存储规则。具体的说,Windows基本排需规则指定应用字典排序时所采用的字符表或者语言,以及用于存储非Unicode字符数据的代码页。这句话听起来比较拗口。其实它说的就是,在数据库记录排序的时候,按照的并不是数据库中的设置,而是其Windows操作系统上的设置。如下图所示,多维数据可以根据“区域和语言选项”中的相关参数来进行排序。
或者说,这里的区域和语言选项的排需规则会替代数据库中设置的排序规则。具体的说,需要注意以下几个方面的内容。
一是对于二进制数据而言,二进制排需规则将会采用基于区域设置和数据类型定义的编码值顺序来对数据进行排序。也就是说,强制采用二进制排序规则。这主要是因为微软可能考虑到,二进制排序规则相对来说,可以提高应用程序在排序时的性能。
二是对于Unicode数据或者非Unicode数据的排序措施。通常来说,如果采用了Windows排序规则的话,则对于Unicode来说,其采用的主要是基于Unicode码位的排序方法。而如果是非Unicode类型的数据,则数据的比较将基于ANSI代码页中定义的码位。注意需要注意,如果是Unicode数据类型的话,则系统将不会考虑区域选项中的自定义设置,而不会考虑数据库中的设置,而直接采用其默认的排需规则,即采用基于 Unicode码位的方法。可见,如果猜唷国内Windows排序规则的话,有时候数据库的排序规则、区域与选项中的设置与排需规则的默认方法之间,他们几个之间的关系会非常的复杂。数据库管理员需要仔细分清楚,并且需要有充分的测试。
四、多种语言标识符情况下的排序处理。
对于商务智能中的联机分析程序,可能会涉及到有多种语言标识符的情况。如现在有一个国际零售商业巨头,其在中国、日本、韩国等多个国家都有其分支机构。在每年年末的时候,需要对这几个国家的销售数据进行联机分析处理。而在各个国家部署数据库的时候,显然采用的是各个国家本国的语言标识符。在这种情况下,如果要对他们的记录进行排序,该如何处理呢?
笔者认为,主要有两种处理方式。第一种方式原理比较简单,实现起来比较复杂。即先将其他的集中不同的语言标识符的记录转换成某一种语言标识符,然后再对数据进行排序与分析。在R2中提供了类似的工具。可以将不同语言标识符的记录通过导入导出转换成某种特定语言标识符的记录。
第二种方式就是采用Windows排序规则。因为在默认情况下,虽然可以为报表分析工具制定多种语言标识符,但是不管数据库管理员指定采用哪种类型的语言标识符,所有的数据报表采用的都是相同的Windows排序规则(即分析服务器上的Windows排序规则)。即使各个办事处采用区域选项设置有所不同也没有关系。因为其归根结底是用的是一台服务器的Windows选项。不过在多维数据应用中,有时候仍然需要根据不同的语言标识符来进行排序。此时就需要用到多位数据库中的Captioncolumn属性。这个属性就是用来指定某个特定对象的排序规则。而且这里的设置优先级要高于Windows排序规则中的设置。如笔者在实际工作中,就比较喜欢使用这个属性。如在具有多语言标识符的环境下,可以选择让系统采用最能够支持各种语言要求的排序规则。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接