使用Transact-SQL计算SQL Server处理器的数量

 更新时间:2016年11月25日 16:40  点击:1715
:怎样使用Transact-SQL以编程的方式确定我的SQL Server计算机有多少个处理器?
:以下语句将返回您需要的信息:

EXEC master..xp_msver N'ProcessorCount',
N'ProcessorType'


但是,我热衷于教给人们捕鱼的方法,而不是给他们一盘现成的冻鱼条,所以我不满足于简单的答案。最近一个同事问我这个问题,我一时想不起来适当的命令,但我知道SQL Server企业管理器在SQL Server属性对话框的处理器选项卡中显示计算机的处理器数量。并且,通过在服务器上运行简单的Transact-SQL语句,企业管理器几乎可以得到所有需要的信息。此外,运行SQL事件探查器还可以快速查看企业管理器生成的语句。
我常常会细数使用SQL事件探查器和观察SQL Server运行情况所带来的好处,以下是将这一建议付诸实现的另一个例子。借助SQL事件探查器,我只花费三分钟即将企业管理器对xp_msver扩展存储过程的调用的分离出来。在这种时候,我总是会先想到SQL事件探查器。


/*--------------------------------------------------
/*作者:翁 彦 enhydraboy@yahoo.com.cn
/*--------------------------------------------------
这是一个在我实际一个项目中遇到的问题。03BHL01001(上海)和03BHL01001(上海)比较的结果是一样的。导致引起的重复的主键问题。
03BHL01001(上海)和03BHL01001(上海)差别,就在于前者的括号是全角的括号字符,后者是半角的括号字符。全角的括号字符和半角的括号字符的ascii码显然是不一样的。全角的( ASCII码是0xA3A8 ,而半角的( 是0x28。那么为什么SQL Server会认为是一样的呢?
问题其实就出在数据库的排序规则上,让我们在仔细研读一下SQL Server的文档。SQL Server的排序规则由这样几部分组成,代码页、区分大小写、区分重音、区分宽度。最后一个在SQL Server的联机帮助中没有进一步提及,其实本篇遇到的问题就是由于这个原因造成的。区分宽度:指定 SQL Server 区分相同字符的单字节表示法(半角)和双字节表示法(全角)。如果没有选择,则 SQL Server 将认为相同字符的单字节表示法和双字节表示法等效。
缺省,安装SQL Server中文版的时候,SQL Server帮你选择的排序规则是Chinese_PRC_CI_AS(Chinese-PRC, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive),是中文,不区分大小写、区分重音、不区分假名、不区分宽度。因此,自然就认同03BHL01001(上海)=03BHL01001(上海)。
所以,正确的选择应该是,后缀为WS的中文排序规则。本例中我们应该选择Chinese_PRC_CI_AS_WS。
我们来看一下,指定排序规则是Chinese_PRC_CI_AS_WS后,怎么样了?

select 1 where '03BHL01001(上海)'='03BHL01001(上海)'
collate Chinese_PRC_CI_AS_WS
(所影响的行数为 0 行)

看来这个问题解决了。
重要提示:
如何察看使用那个排序规则呢?可以使用下面的SQL语句。
SELECT *
FROM ::fn_helpcollations()
可以查询所有排序规则的信息。
查出所有中文排序规则的信息
SELECT * FROM
(
SELECT *
FROM ::fn_helpcollations()) A
WHERE name like 'Chinese%'


问:为了从查询中返回指定数量的行,使用 TOPN 子句比使用SET ROWCOUNTN 语句要快吗?
答:在正确进行了索引的情况下,TOP N 子句和SET ROWCOUNT N 语句是一样快的,但是如果数据未经过排序,TOP N 要快一些。在输入未排序的情况下,TOP N 操作时使用一个经过排序的小的中间临时表,而且操作时仅仅替换该表的最后一行。如果输入是近似排序的,TOP N 引擎必须删除或插入最后行,但只需几次操作即可。近似排序意味着您正在处理的堆集在初始构建时可进行有序的插入操作,并且不需要进行很多的更新、删除、向前移动指针等操作。
 
排序一个近似排序的堆集比排序一个巨大的表要更有效率。在一次测试中,使用TOP N 来对一个由无序插入操作构建的并且含有同样的行数的表进行排序,发现TOP N 的效率也不高。通常,在进行过索引和未进行过索引的情况下,I/O时间都是一样的;但是如果没有进行过索引,SQL Server 必须要进行一次全表扫描。处理器时间和实耗时间说明近似排序的堆集要更有效率一些。但I/O时间是相同的,因为不管怎样SQL Server都要读取所有的行。
 


问:我需要将Microsoft Word文档导入至SQL Server并索引这些文档,以便在关系查询中使用这些文档。怎样导入和索引文档呢?
答:SQL Server允许您以多种方式导入Word文档。让我们看看几种最常用的方法。请注意,在将文档导入至SQL Server之前,您需要创建一个image数据类型列,用于存放数据。然后,您可以使用textcopy.exe命令行工具将image文件读入数据库,从而完成文档的导入操作。如果需要该工具的基本说明文档,请在命令提示状态下键入textcopy /?。将Word文档导入SQL Server的另一个方法是使用Microsoft ActiveX Directory Object(ADO)Stream接口编写导入代码。您可以在Microsoft产品支持服务(PSS)的通过使用ADO Stream对象访问和修改SQL Server BLOB数据一文中找到示例代码。
此外,您也可以将二进制数据移到SQL Server中。有关这一方法的详细说明,请参阅PSS的使用ADO检索和更新SQL Server文本域一文。移动二进制数据允许您将数据的一部分存放在数据库中,这在需要控制数据格式时尤其有用。例如,如果只需要数据中1,000到1,010之间的字节,导入二进制数据的速度远远高于使用ADO Stream接口的速度,这是由于SQL Server从磁盘上检索数据的量大为减少。人们通常使用这一技术来存储位掩码,用于表示应用程序的开或关标志位。
SQL Server 2000自带了说明了如何移动二进制数据的示例代码。如需查看该代码,只需在安装有SQL Server 2000光盘上代码示例的驱动器上选择 Program FilesMicrosoft SQL Server80ToolsDevToolsSamplesado路径。展开该可执行文件,在Visual Basic目录下查找Samples子目录。在Employee示例下,注意一下该代码是如何使用FillDataFields()函数的。
如需索引Word文档,SQL Server 7.0和SQL Server 2000都提供了全文搜索组件。该组件混合使用了多种技术,用以索引大型文本和image列。在执行全文搜索时,您需要指定image列所含的文件类型,以及从二进制数据中析取信息所需的筛选(filter)。有关使用全文索引的详细信息,请参阅SQL Server在线书籍中的相关主题,并阅读David Jones 2000年7月发表在SQL Server杂志网站上的名为构建更好的搜索引擎一文。请注意,索引Word文档并不会自动生成包含文档中关键字的一组关系表。但是,索引文件让您将这些Word文档包含在您的搜索中。以下是从数据中析取关键字的可行方式:
使用OLE自动处理从文档中读取用户定义的关键字。在装载该文档时将这些关键字保存在关系表中。
问:我怎样才能将Microsoft Access数据表中的数据转换为XML格式?
答:以下应用程序可以帮助您将Access数据转换为XML格式:Access 2002、 ADO 2.5和SQLXML。您可以通过Access 2002(Microsoft Office XP的一部分)查询数据或者使用XML格式保存数据。您可能想自动完成这个转换过程。ADO 2.5及其后续版本使您可以将数据打开到一个记录集中,然后以XML格式持有记录集,如以下代码所示:
rs.Save "c:s.xml", adPersistXML
您还可以使用链接服务器将Access 数据库添加到SQL Server 2000数据库,以便从SQL Server内部运行查询和检索数据。最后,您可以通过HTTP,使用SQLXML技术以XML格式抽取出所需的Access数据。
 


[!--infotagslink--]

相关文章

  • Windows批量搜索并复制/剪切文件的批处理程序实例

    这篇文章主要介绍了Windows批量搜索并复制/剪切文件的批处理程序实例,需要的朋友可以参考下...2020-06-30
  • python 计算方位角实例(根据两点的坐标计算)

    今天小编就为大家分享一篇python 计算方位角实例(根据两点的坐标计算),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
  • BAT批处理判断服务是否正常运行的方法(批处理命令综合应用)

    批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。这篇文章主要介绍了BAT批处理判断服务是否正常运行(批处理命令综合应用),需要的朋友可以参考下...2020-06-30
  • PHP file_get_contents设置超时处理方法

    file_get_contents的超时处理话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_contents其实也可以POST数据。今天说的这篇是讲超时的,确实在...2013-10-04
  • C#多线程中的异常处理操作示例

    这篇文章主要介绍了C#多线程中的异常处理操作,涉及C#多线程及异常的捕获、处理等相关操作技巧,需要的朋友可以参考下...2020-06-25
  • postgresql 中的时间处理小技巧(推荐)

    这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • JS实现购物车中商品总价计算

    这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
  • Python同时处理多个异常的方法

    这篇文章主要介绍了Python同时处理多个异常的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-29
  • C#异常处理中try和catch语句及finally语句的用法示例

    这篇文章主要介绍了C#异常处理中try和catch语句及finally语句的用法示例,finally语句的使用涉及到了C#的垃圾回收特性,需要的朋友可以参考下...2020-06-25
  • python用moviepy对视频进行简单的处理

    这篇文章主要介绍了python如何用moviepy对视频进行简单的处理,帮助大家更好的利用python处理视频,感兴趣的朋友可以了解下...2021-03-11
  • C#异常处理详解

    这篇文章介绍了C#异常处理,有需要的朋友可以参考一下...2020-06-25
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • sql server日志处理不当造成的隐患详解

    这篇文章主要给大家介绍了关于sql server日志处理不当造成的隐患的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用sql server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-07-11
  • C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法

    这篇文章主要介绍了C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法,涉及C#针对坐标的数学运算相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • c# 计算时间间隔的简单方法(推荐)

    下面小编就为大家带来一篇c# 计算时间间隔的简单方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • Spring MVC 处理一个请求的流程

    Spring MVC是Spring系列框架中使用频率最高的部分。不管是Spring Boot还是传统的Spring项目,只要是Web项目都会使用到Spring MVC部分。因此程序员一定要熟练掌握MVC部分。本篇博客简要分析Spring MVC处理一个请求的流程。...2021-02-06
  • go语言中的Carbon库时间处理技巧

    这篇文章主要介绍了go语言中的Carbon库时间处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-05
  • C++异常处理入门(try和catch)

    C++ 提供了异常机制,让我们能够捕获运行时错误,本文就详细的介绍了C++异常处理入门,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-09
  • Vue如何使用Dayjs计算常用日期详解

    这篇文章主要给大家介绍了关于Vue如何使用Dayjs计算常用日期的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-09
  • C#事务处理(Execute Transaction)实例解析

    这篇文章主要介绍了C#事务处理(Execute Transaction)实例解析,对于理解和学习事务处理有一定的帮助,需要的朋友可以参考下...2020-06-25