Questions tagged «sql-server»

所有版本的Microsoft SQL Server(非MySQL)。还请添加特定于版本的标记,例如sql-server-2016,因为它通常与问题相关。

1
-E启动选项和SSD
有没有人看到-E使用SSD时会产生影响的证据? 对于“旋转生锈”驱动器的影响毋庸置疑-但是SSD并没有真正受到随机I / O的困扰。我不知道该-E选项是否可能会损害性能。 在具有混合驱动器(SSD SAN,PCI SSD和传统SAN)的服务器上,SQL Server必须决定是否使用启动-E。我有一些经验证据表明该选项可能会损害性能,但是在考虑将其取消之前,我希望获得其他人的反馈。 我的设置使用标准的64K RAID条带,并且NTFS群集大小也为64K。


2
默认情况下关闭CHECK_POLICY
我们从SQL Server 2000迁移到SQL Server2005。我无法更改的客户端软件创建了一个没有选项的用户 CHECK_POLICY = OFF; 创建用户后,我必须运行命令 ALTER LOGIN username WITH CHECK_POLICY = OFF; 按照建议禁用该策略,我不能。 是否可以禁用CHECK_POLICY没有CREATE LOGIN用户创建的默认设置CHECK_POLICY = OFF?


1
多次创建和删除#SomeTable是“合法的”吗?
我已经将代码分类为“连贯的块”,可以一遍又一遍地插入较长的“配置脚本”中,而我使用的模式之一是: CREATE TABLE #WidgetSetting ( WidgetID bigint not null, Name nvarchar(100) not null, Value nvarchar(max) not null, CreateDate datetime not null ) INSERT VALUES MERGE TABLES DROP TABLE #WidgetSetting 但是现在SSMS抱怨到下次CREATE TABLE火灾时该对象已经存在。是什么赋予了? 我认为很明显,我将不得不在脚本开始时声明一次表,然后截断而不是删除,但是自然地,令人沮丧的是,无法仅删除表并再次使用相同的名称。

3
删除假设指数
过去,我以为我会使用针对集群索引的DROP INDEX语句和针对非集群索引的DROP STATISTICS语句删除假设索引。 我有一个数据库,其中充满了我想清除的DTA残留物;但是,当我尝试删除该对象时,总是收到一条错误消息,告诉我无法删除该对象,因为它不存在或您没有权限。我是服务器上的完整系统管理员,因此希望拥有执行任何操作的权利。 我已经尝试了DROP STATS和DROP INDEX语句,但是都给了我同样的错误。 有人删除过这些吗?我想念一个窍门吗? 附录 翻看一下,我只是注意到,如果我右击该对象,则“ Script As”和“ DELETE”选项均为灰色。

1
如何切碎.docx XML?
我正在尝试将xml(实际上是docx文件)导入到sql server 2008数据库。我几乎是XML编程的新手。我用谷歌搜索了很多,但是几乎所有的示例都带有简单的xml文件。这里的xml文件有点复杂(请参阅下文)。您能否给我一些想法,我应该如何为此XML创建表,以及应该在sql server中运行什么查询。我需要所有标签的值,例如w:p,w:pStyle,w:bookmarkStart,w:t标签等w:rsidP,w:rsidRDefault,w:rsidR <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"> <w:body> <w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0"> <w:pPr><w:pStyle w:val="Heading1"/> </w:pPr><w:bookmarkStart w:id="0" w:name="_Toc212523610"/> <w:r> <w:t>Summary</w:t> </w:r> <w:bookmarkEnd w:id="0"/> </w:p> <w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0"><w:pPr><w:pStyle w:val="mainbodytext"/><w:ind w:right="-694"/><w:rPr><w:b/><w:bCs/></w:rPr></w:pPr><w:r><w:rPr><w:b/><w:bCs/></w:rPr><w:t>What is the Group Defined Practice for Integrity Management?</w:t></w:r></w:p> <w:p w:rsidR="00EF42E0" …


2
当物理事务日志文件是镜像中的主体时,如何缩小物理事务日志文件?
我们在周末设置数据库镜像,但是忘记重新启用备份事务日志的作业。今天早上我来的时候,事务日志已经膨胀到58GB,并占用了大部分驱动器空间。 我将事务日志手动备份到磁盘以使数据库再次运行,但是运行DBCC SHRINKFILE似乎并没有减小事务日志文件的物理大小。 DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000) 如果我使用以下命令查看日志使用情况 DBCC SQLPERF(LOGSPACE) 我可以看到仅使用了当前日志的22% 数据库名称日志大小(MB)使用的日志空间(%)状态 MyDatabaseName 55440.87 22.38189 0 如果我log_reuse_wait_desc在sys.databses中签出,则看到的唯一记录是DATABASE_MIRRORING,因此我猜测镜像在为什么日志文件的物理大小不会缩小的过程中发挥了作用? SELECT log_reuse_wait_desc FROM sys.databases WHERE name = N'MyDatabaseName'; 我还注意到我的主要数据库镜像状态为Suspended,并且尝试立即恢复它失败,并出现以下错误: 数据库'MyDatabaseName'的远程镜像伙伴遇到错误5149,状态1,严重性25。数据库镜像已被挂起。解决远程服务器上的错误并恢复镜像,或者删除镜像并重新建立镜像服务器实例。 镜像服务器上的错误日志也包含此错误,但是还包含有关日志文件驱动器已满的错误 尝试扩展物理文件时,“修改文件”遇到操作系统错误112(磁盘上没有足够的空间。)。 和 F:\ Databaselogs \ MyDatabaseName_1.ldf:遇到操作系统错误112(磁盘上没有足够的空间。)。 主体服务器在日志文件驱动器上有60GB(此处托管了其他数据库),而镜像服务器只有45GB。 备份日志文件使数据库再次可用,但是我还想减小磁盘上物理日志文件的大小,并恢复镜像。 如何在不损害镜像或备份链的情况下缩小物理事务日志文件的大小? 我正在运行SQL Server 2005

2
生成脚本以自动重命名默认约束
背景:某些默认的列约束是在没有显式名称的情况下生成的,因此我们得到的有趣的名称因服务器而异,例如: DF__User__TimeZoneIn__5C4D869D 我希望使用一致的命名方式来管理它们,DF_Users_TimeZoneInfo以便我们可以确保将来的目标表上存在适当的约束(例如在RedGate比较中,甚至只是在视觉上) 我有一个脚本,该脚本通常可以满足我的需求: select 'sp_rename N''[' + s.name + '].[' + d.name + ']'', N''[DF_' + t.name + '_' + c.name + ']'', ''OBJECT'';' from sys.tables t join sys.default_constraints d on d.parent_object_id = t.object_id join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id join sys.schemas s on …


6
SQL Server处于混乱状态:数据库是否存在?
遇到了一个非常奇怪,令人讨厌的问题。。以某种方式在我们的服务器上运行的SQL Server 2008 R2实例已损坏。 首先,我们注意到昨天创建的数据库丢失了。因此,我们环顾四周,发现它仍然在那里,但是与众不同。因此,我们尝试附加mdf,但收到一条类似于的消息The file is currently in use。 我认为这很奇怪,所以重新启动了SQL Server。同样的事情……好吧,是时候采取严厉措施了……于是,我停止了服务,压缩了mdf,启动了服务,解压缩了它,然后试图恢复它。上面的消息不见了,但是我得到了: 无法附加与现有数据库同名的数据库 哎哟。当然它没有显示在数据库浏览器中,所以不知道发生了什么...不得已: DROP DATABASE [DatabaseName] 当然那没用..这告诉我数据库不存在。因此,我陷入了困境……SQL Server一方面认为数据库确实存在,而另一方面它认为db不存在..显然,它处于混乱状态。 有没有人见过这个?对如何解决有任何想法?

1
SQL Server 2008 R2高缓冲区I / O原因
我正在尝试对我们的文档管理服务器具有的SQL Server的性能进行故障排除,而今天的性能一直处于历史最低水平。 查看我最近设置的管理数据仓库(MDW),我可以看到缓冲区I / O急剧增加。组合的SQL等待时间在1500-2000毫秒的范围内,这比正常时间(大约500毫秒)要高得多。这种增加的很大一部分是缓冲区I / O。 我不是一名DBA,而是出于必要而这样做,我深深地陷入了深度。 有什么办法可以说明为什么缓冲区I / O大大增加了?这是否可能是由于查询提取大量数据或SQL Server内存限制的配置不正确?有什么我应该关注的特定问题(或一般性问题)或可以查询以帮助解决问题的DMV? 该服务器是SQL Server 2008 R2。它是一个运行两个vCPU和8GB RAM的VM,其磁盘托管在SAN的单独阵列上。 上面的图形都是使用SQL Server 管理数据仓库生成的。

1
组织具有大量RAM的SQL Server的策略
现在,我们有一个用于数据库的新服务器,除其他外,我们还有128GB的可用RAM(之前我有16GB)。我知道SQL Server非常擅长管理它的资源,但是我想知道在服务器/数据库设置或处理代码(存储的procs /索引等)中是否应该使用任何特殊设置或策略来确保SS采用可用ram的最大优势。 该数据库约为70GB,它是一个非事务性数据库(它是一个数据仓库)。因此,基本的大写操作然后再进行大量读操作是正常的事情。

2
在SSIS 2012中,将程序包标记为“入口点”程序包的目的是什么
在Visual Studio设计器中,您可以右键单击SSIS包,并将其指定为“入口点”包” 进行搜索时,我在MSDN上找到了该页面,该页面指出: 值1表示该程序包旨在直接启动。值为0表示该软件包将由具有Execute Package任务的另一个软件包启动。预设值是1。 启用和禁用此标志后,我已经能够直接执行包。 启用或禁用此标志的目的是什么?仅仅是记录您自己的SSIS软件包的意图,还是启用或禁用SQL Server / SSIS时其行为有所不同?

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.