问:我想以一次5,000行的方式批量更新一个大型表,但我不知道怎样分割数据。该表不包含增量数字或整数主键。怎样才能在保持良好性能的同时实现数据更新呢? 答:如果知道哪些行尚未被更新,您可以使用简单的谓词来排除已更新的行,ROWCOUNT设置可以帮助您批量
2004-12-02问:我的一个表中包含了名为IdValue的单列主键。对于给定的IdValue值,我希望找到紧邻目标值之前和之后的表行(假定结果按IdValue排序)。怎样才能不使用游标而通过一个基于集合的方法得到需要的结果? 答:Transact-SQL是一个基于集合的语言,使用它在结果集
2004-12-02问:怎样才能将XML文件导入SQL Server 2000? 答:将XML文件导入SQL Server有若干种方法,这里提供其中的3种: 大容量装载COM接口。如果需要将文档的实体和属性析取到关系表中,最快的方法就是使用SQL Server 2000 Extensible Markup Language 3.0 Ser
2004-12-02问:怎样在一个UPDATE语句中使用表B的三个列更新表A中的三个列? 答:对这个问题,您可以使用强大的关系代数。本页中的代码说明了如何组合使用FROM子句和JOIN操作,以达到用其他表中数据更新指定列的目的。在设计关系表达式时,您需要决定是否需要单一行匹配
2004-12-02问:本地的一个ISP托管了我们的SQL Server,但是我不能看到或连接到运行在该计算机上的命名实例。我知道SQL Server 2000命名实例不使用TCP/IP 1433端口,并且确定该SQL Server实例所使用的TCP/IP端口是打开的。您有什么建议吗? 答:许多人知道如何使用SQL S
2004-12-02问:在我们的开发环境下,每个人都有系统管理员(sa)密码,5个组使用一个数据库。在某个开发人员不小心删除了数据后,我没有办法确定谁删除哪一块数据。当开发人员更新数据库中的数据时,如何审核工作站或登录ID? 答:因为您工作于开发环境下,使用SQL事件
2004-12-02问:我的SQL Server表的一列允许NULL值。我希望在其值为非NULL时,该列是唯一的。怎样才能以编程的方式实现这一行为?如果在该列上设置一个UNIQUE 约束,我只能包含一个值为NULL的记录。我正在使用触发器实现这一约束,您可以推荐一个更简单的方法以保证所有的非NU
2004-12-02问:我的Microsoft Access 2000应用程序由后端的SQL Server 2000数据库写入数据。为防止Access的用户看到SQL Server 2000表中的全部数据,我想使用一种只允许用户浏览授权数据行的视图。可以创建一种限制用户访问SQL Server数据的视图吗? 答:可以。如果每位
2004-12-02问:我注意到,SQL Server 7.0默认安装的代码页设置是SQL_Latin1_General_CP1_CI_AS,但是SQL Server 2000的默认代码页是Latin1_General_CI_AS。在我需要将SQL Server 7.0数据库恢复到SQL Server 2000之中时,默认代码页发生的变化会造成很大的差异。我应该如何适应
2004-12-02从SQLSERVER6.5开始,MS提供了一个非常有用的系统存储过程sp_MSforeachtable和sp_MSforeachDB;作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处
2004-12-02问:为什么我的内嵌SQL或嵌入SQL 要比我的存储过程运行的快? 答:重编译可能是存储过程运行比较慢的原因。要确认这一点,您需要做一些性能测试,例如:看一下每种类型的查询和调用存储过程的“showplan”情况,并比较查询计划的高速缓存命中率和高速缓存缺
2004-12-02问:如果我需要在运行有SQL Server的机器上运行病毒扫描软件,怎样做才不会影响性能? 答:该问题的答案取决于您希望运行的病毒扫描软件的类型。目前有三种类型的病毒扫描软件——主动病毒扫描、病毒清除及漏洞扫描。 主动病毒扫描软件 我们推荐将主动
2004-12-02问:我需要将Microsoft Word文档导入至SQL Server并索引这些文档,以便在关系查询中使用这些文档。怎样导入和索引文档呢? 答:SQL Server允许您以多种方式导入Word文档。让我们看看几种最常用的方法。请注意,在将文档导入至SQL Server之前,您需要创建一个
2004-12-02问:为了从查询中返回指定数量的行,使用 TOPN 子句比使用SET ROWCOUNTN 语句要快吗? 答:在正确进行了索引的情况下,TOP N 子句和SET ROWCOUNT N 语句是一样快的,但是如果数据未经过排序,TOP N 要快一些。在输入未排序的情况下,TOP N 操作时使用一个经
2004-12-02问:怎样使用Transact-SQL以编程的方式确定我的SQL Server计算机有多少个处理器? 答:以下语句将返回您需要的信息: EXEC master..xp_msver N'ProcessorCount', N'ProcessorType' 但是,我热衷于教给人们捕鱼的方法,而不是给他们一盘现成的
2004-12-02/*-------------------------------------------------- /*作者:翁 彦 enhydraboy@yahoo.com.cn /*-------------------------------------------------- 这是一个在我实际一个项目中遇到的问题。03BHL01001(上海)和03BHL0
2004-12-02编者按:数据库性能优化和数据库管理系统密切相关,不同的数据库管理系统在具体操作上有很大不同。继本报连续在2003年第48期、49期上刊登《Sybase数据库性能调优》和《Oracle服务器性能调整攻略》,分别讨论了Sybase和Oracle数据库管理系统以后,本期我们将具体介绍
2004-12-02问:我怎样才能将Microsoft Access数据表中的数据转换为XML格式? 答:以下应用程序可以帮助您将Access数据转换为XML格式:Access 2002、 ADO 2.5和SQLXML。您可以通过Access 2002(Microsoft Office XP的一部分)查询数据或者使用XML格式保存数据。您可能想
2004-12-02问:为什么SQL Server不允许在视图定义使用ORDER BY子句? 答: SQL Server之所以不允许在视图定义中使用ORDER BY子句是为了遵守ANSI SQL-92标准。因为对该标准的原理分析需要对结构化查询语言(SQL)的底层结构和它所基于的数学理论进行讨论,我们不能在这
2004-12-02你可以使用SQL服务器调节器(SQL Server Profiler)工具来收集服务器当前活动的重要信息。被这个Profiler工具所追踪到的信息(包含有数据库的真实负载)能够被用在多种场合里。现在让我们来看看如何使用Profiler收集能够被索引调节向导所使用的数据,以及你该如何使
2004-12-02