Questions tagged «sql-server-2005»

SQL Server 2005(主要版本9.00.xxxx)。还请标记sql-server。



8
标识列或UDF显式生成唯一ID?
我正在就是否最好PRIMARY KEY使用Identity Columns(我们明确使用生成唯一ID的UDF)进行辩论。 我在为“身份栏”争论。 他说,我的搭档正在争吵手动生成值 通过将UDF放在另一个可以放置UDF的桌子上 锁定资源 用一个称为ID_Value的字段递增ID表1 使用它作为全局唯一标识符 或者id+1在插入时让表格做一个 在没有标识约束的服务器和/或环境之间移动数据更容易;从一个有数据的数据库移动到另一个具有类似暂存数据或虚拟数据的类似数据库。对于非生产中的测试,我们可能希望将昨天的所有记录拉到暂存阶段进行测试。 哪种实现更有意义?

1
有没有可靠的方法来确定何时应运行DBCC CLEANTABLE来回收空间?
最近,我不再只是在文件利用率接近80%时才增长文件,而是通过碎片整理,添加和删除聚簇索引,实现行或页面压缩等常用技巧更主动地回收空间。 但是,在某些情况下,我可以通过执行DBCC CLEANTABLE回收更多的空间。在我的环境中有成百上千个数据库,因此不可能知道用户在每个数据库中做什么,并且完全可以接受涉及删除固定长度列的更改。通常,通过查看我编写的某些对象空间利用脚本中的行数与页数,可以发现这些机会。我想通过尝试自动检测这种情况来使这一步骤更进一步。 我想知道的是,是否有人在积极监视这些机会,如果是,您在寻找什么? 我的想法是写一些东西来收集行的最大和最小大小,表中的行数,分配的页数和使用的页数,然后做一些基本的数学运算来记录结果远远超出了“预期”范围。

1
IDENTITY_INSERT如何影响并发性?
我正在尝试使用第三方第三方SAP附加组件来帮助客户,该附加组件存在发布故障并且已不再支持。 在某些情况下,它将存档和不完整的帖子从发布队列表存档到发布存档表。我需要将这些存档结果移回队列。 队列ID是一个标识列,我希望保持不变。 问题是,如果我关闭了identity_insert on / insert / identity_insert,那么与创建队列条目并期望identity列自动生成的进程的并发性有什么期望? 任何最好的方式来演示这种行为的指针也将不胜感激。

1
DMV sys.dm_exec_query_stats中的last_worker_time和last_elapsed_time有什么区别?
DMV sys.dm_exec_query_stats中的last_worker_time和last_elapsed_time是什么意思,它们之间有什么区别? 当我在查询下面触发 SELECT TOP 20 qs.last_worker_time, qs.last_worker_time/1000000 last_worker_time_in_S, qs.last_elapsed_time, qs.last_elapsed_time/1000000 last_elapsed_time_in_S FROM sys.dm_exec_query_stats qs order by qs.last_worker_time desc 我得到如下结果。 关于我发现要么两者都是相等的,要么是经过的时间大于工作人员的时间。我想理解两者的意义,因此也可能有助于我进行性能调整。


3
数据库大小-MDF太大?
我正在维护一个SQL Server 2005数据库,该数据库承载大约2.9Tb的数据(2 x 1.45Tb-我具有RAW架构和Analysis架构,因此基本上是摄取的数据的两个副本)。恢复模型为SIMPLE,恢复模型为.ldf6Gb。 无论出于什么原因,它.mdf都是7.5Tb。现在,在Analysis表中可能只有2-3个附加列,NVARCHAR(MAX)而从我(可能是误解-如果我错了,请纠正我)可能导致额外的空间分配的列不多。那是在紧缩数据库之后-在此之前大约是9Tb。有什么想法吗? 并且,如果您还有其他问题,请告诉我-我是数据库管理和优化工作的新手(我通常不做这方面的工作:)。 非常感谢! 安德里亚


1
SQL Server 2000到2008到2012
我们现在正在从SQL Server 2000迁移到2008。我们正在对代码,脚本进行大量更改,因为自2000年到2008年以来发生了许多更改。在进行这些更改时,我想知道的是-我现在可以做些什么使它与2012年兼容同一时间。尽量避免从2012年到2008年等向后兼容的更改。我想这样做的原因是,当我们决定从2008年到2012年迁移时,尽量减少将来(从现在到3到4年)的工作量。我能做的还是需要知道的?

3
如何检查SQL Server端点的安全设置?
我正在为我们的SQL Server开发人员创建一个TEST环境。 在生产中,我们有3个SQL Server,SQL01其中包含多个镜像到的数据库SQL02。 SQL03在“具有自动故障转移功能的高安全性”或同步配置中充当见证人。 我已经使用VMWare P2V将所有三台计算机虚拟化到单独的硬件上,重新配置了计算机的SID,并从这些新计算机中清除了生产服务器的IP地址。 我起初忘记给生产见证机器加黑洞,因此​​TEST机器上的数据库仍将SQL03机器用作见证。注意到这个问题,我决定在TEST上重新配置数据库,以指向新虚拟化的TEST见证者,称之为TEST03。 要重新配置数据库以使用新的见证服务器,我在主服务器上输入了以下命令TEST01: ALTER DATABASE [TestDB] SET WITNESS = 'TCP://TEST03.domain.inet:5022'; 响应是意外的: The ALTER DATABASE command could not be sent to the remote server instance 'TCP://TEST03.domain.inet:5022'. The database mirroring configuration was not changed. Verify that the server is connected, and try again. 我对这个错误消息非常困惑,因为该配置在生产机器上确实有效,并且在测试机器上没有进行任何修改。 为了使它起作用,我需要LOGIN在测试见证人上创建一个: CREATE …

3
合并复制文章计数的硬限制?
有点背景。我们开发了一个使用合并复制的应用程序。目前,我们目前正在发布约212条文章,并且一切都很好,因为它似乎已落在256条以内。(在服务器上使用SQL Standard 2005,在订户级别上使用2005 Express。) 我们正在开发一个新版本,并从头开始构建一个新数据库,该数据库的最低系统要求为SQL 2008 R2 Standard服务器端和客户端的Express 2008 R2。对已发表文章的相同256个计数限制。(是的,我们还将支持2012年,但限制是一样的) 问题出在哪里,我们已经在哪里成功测试了新版本中超过400篇文章的发布,并且所有功能都进行了功能测试(发布创建,快照和订阅者创建以及复制本身)。是否有其他人之前超过了计数限制,这仅仅是一个建议的软限制?在发布创建或订户创建期间,我们都没有看到任何错误。 根据这篇文章:http : //msdn.microsoft.com/zh-cn/library/ms143432%28v=sql.105%29 我正在等待Microsoft的回电,但我想知道是否有人以前在任何SQL版本中都看到过此消息。


2
如何从字符串中去除非数字字符?
用户在框中输入搜索词,然后将该值传递给存储过程,并对照数据库中的几个不同字段进行检查。这些字段并不总是具有相同的数据类型。 一个字段(电话号码)由所有数字组成,因此使用.Net CLR函数检查时会去除字符串中的所有非数字字符。 SELECT dbo.RegexReplace('(123)123-4567', '[^0-9]', '') 问题是,此函数有时突然停止工作,并出现以下错误: Msg 6533,第16级,状态49,第2行 AppDomain MyDBName.dbo [runtime] .1575已由升级策略卸载,以确保 您的应用程序的一致性。访问关键资源时发生内存不足。 System.Threading.ThreadAbortException:类型的异常 引发了“ System.Threading.ThreadAbortException”。 System.Threading.ThreadAbortException: 我已经尝试过针对此错误在MSDN上发布的建议,但仍然遇到问题。目前,我们无法选择切换到64位服务器。 我知道重新启动服务器会释放它所拥有的任何内存,但这在生产环境中不是可行的解决方案。 是否只有在使用T-SQL的SQL Server 2005中才能从字符串中去除非数字字符?

2
连续处理时索引碎片
SQL Server 2005 我需要能够连续处理900M记录表中的约350M记录。在处理过程中,我用来选择要处理的记录的查询变得非常分散,我需要停止处理以重建索引。伪数据模型和查询... /**************************************/ CREATE TABLE [Table] ( [PrimaryKeyId] [INT] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED, [ForeignKeyId] [INT] NOT NULL, /* more columns ... */ [DataType] [CHAR](1) NOT NULL, [DataStatus] [DATETIME] NULL, [ProcessDate] [DATETIME] NOT NULL, [ProcessThreadId] VARCHAR (100) NULL ); CREATE NONCLUSTERED INDEX [Idx] ON [Table] ( [DataType], …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.