Questions tagged «sql-server-2008-r2»

SQL Server 2008 R2(主要版本10.50.xxxx)。请同时用sql-server标记。


17
如何比较两个数据库的架构?
有没有办法找到两个SQL Server数据库之间的差异(仅模式)。一个是本地的,第二个是在客户的站点。我们在运行Crystal Reports时遇到一些问题,这些Crystal Reports运行某些​​报告,并且某些代码未执行,并且似乎架构不匹配。 我可以在两个数据库上运行相同的命令并比较结果以表明差异在哪里吗?


2
当临时表使用查找和书签查找时,为什么表变量强制索引扫描?
我试图理解为什么使用表变量会阻止优化器使用索引查找,然后使用书签查找和索引扫描。 填充表格: CREATE TABLE dbo.Test ( RowKey INT NOT NULL PRIMARY KEY, SecondColumn CHAR(1) NOT NULL DEFAULT 'x', ForeignKey INT NOT NULL ) INSERT dbo.Test ( RowKey, ForeignKey ) SELECT TOP 1000000 ROW_NUMBER() OVER (ORDER BY (SELECT 0)), ABS(CHECKSUM(NEWID()) % 10) FROM sys.all_objects s1 CROSS JOIN sys.all_objects s2 CREATE INDEX …

4
FOR XML无法序列化数据,因为它包含字符(0x0000)
我有一个大查询(如有必要,我将在此处发布),并且出现此错误: 消息6841,级别16,状态1,第1行 FOR XML无法序列化节点'NoName'的数据,因为它包含XML不允许的字符(0x0000)。要使用FOR XML检索此数据,请将其转换为二进制,varbinary或图像数据类型,然后使用BINARY BASE64指令。 我使用的唯一部分FOR XML是在这里: WHERE (CodFuncionario = Results.CodFuncionario) FOR XML PATH(''), TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, '') AS [Experiencia] 但是,什么是node noname?以及如何寻找该值:(0x0000) 这是子查询之一(我只有FOR XML): SELECT [CodFuncionario], STUFF ( ( SELECT ' / ' + CAST ( [DescFuncao] + '-' + [DescTempoExperiencia] AS VARCHAR(MAX) )... FROM [Linked_Server].db.dbo.tblFuncionarioExperiencia T0 INNER …

2
需要了解并行查询执行错误
今天,我们的生产sql服务器的性能下降了。在发生这种情况时,我们记录了一些"The query processor could not start the necessary thread resources for parallel query execution"错误。我所做的阅读表明,这与执行复杂查询时使用多少个CPU有关。但是,当我在停电期间检查时CPU Utilization was only at 7%。还有其他我可能还没有提到的东西吗?这可能是性能下降的罪魁祸首吗?还是我追赶红鲱鱼? 我的sp_configure值如下: name minimum maximum config_value run_value cost threshold for parallelism 0 32767 5 5

2
INSERT语句中的行值表达式数量超过了允许的最大1000行值数量
一个INSERT INTO脚本编写如下。 INSERT INTO tableName (Column1, Column2,....) VALUES (value1, Value2,...), (value1, Value2,...),.... 以下是我们在插入语句上面进行解析时遇到的错误 消息10738,级别15,状态1,行1007 INSERT语句中行值表达式的数量超过了允许的最大1000行值。 我的简单问题是,我们可以更改1000个值的限制吗?

2
我如何知道SQL Server实际使用了多少个Cores?
我有两台运行SQL Server的服务器。 服务器1:SQL Server 2008 R2 Express(4核) 服务器2:SQL Server 2012 Developer Edition(8核) 据我所知,SQL Server 2008 R2 Express应该仅使用一个内核。 SQL Server 2012 Developer版本应使用所有8个核心。 但是,如果我在SQL Server 2008 R2 Express上的SQL查询中运行以下命令,它将显示4个核心。 select scheduler_id, cpu_id, status, is_online from sys.dm_os_schedulers where status = 'VISIBLE ONLINE' 我是否使用正确的命令来衡量使用情况?

5
一次将多个数据库从C:移动到D:
我有带有323个数据库的SQL Server 2008 R2,在我的C:驱动器(快速SSD)上消耗了大约14 GB。 因为我想在C:驱动器上回收一些空间,所以我想将它们移动到D:驱动器上。 我已经找到此MSDN文章,但这似乎是仅移动一个数据库的过程。 是否有自动方式或脚本一次移动所有数据库?

5
完全备份和仅复制完全备份之间的区别
我在SQL Server中央线程中看到了完整备份会截断日志吗?完全备份不会截断日志: 否。完全备份或差异备份都不会截断事务日志。- 林恩佩蒂斯 否-一个完整的备份不会截断日志。- 乍得·克劳福德 那么完全备份和仅复制完全备份有什么区别? 对于日志备份,有仅复制备份,可以防止在不截断日志的情况下破坏日志链。那么什么是仅复制完整备份?


3
为其他数据库中的内部存储过程使用中央CLR存储过程/函数存储库来使用?
我想使用我在C#CLR中开发的代码在系统上的所有数据库中使用,这样我就不必将每个数据库设置为可信任并打开CLR并在每个数据库中保留一堆相同的代码。 从管理和安全的角度来看,有没有最佳方法?CLR功能是非常基本的功能,例如字符串分隔符,电子邮件验证,URL编码/解码,base64等。我希望每个数据库中只有dbo模式才能访问这些功能。 有没有简单的方法可以做到这一点? 另外我也不清楚CLR dll是否被嵌入,是否移动数据库,是否带有标签,或者是否也必须移动dll。 谢谢

2
重新计算BIDS中的时间维度
我正在使用BIDS在SSAS 2008 r2中创建多维数据集。 我使用向导创建了一个时间维度。该配置的一部分是选择日期范围。 创建之后,我意识到我需要比最初指定的日期范围更大的日期范围。 我确实发现我可以打开维度,转到属性,然后在那里重新定义日期范围。我保存并重新处理了该维,但是表中的实际日期范围并未增长到包括新添加的日期。 有没有其他方法可以使这个时间维度增长,还是需要从头开始重新创建?

2
SQL Server:我们应该使用TCP还是命名管道还是使用默认管道?
从同一LAN中另一台服务器上的.NET 4客户端应用程序连接到SQL Server 2008 R2时,可以设置三种不同的网络协议: TCP协议 命名管道 不要在连接字符串中设置任何内容并使用默认值 什么是最佳做法?选择什么? 附加信息:服务器和客户端上都启用了TCP和命名管道。该应用程序正在使用数据库镜像。客户端和服务器通过快速LAN进行通信。 我们正在对此进行调查,因为我们有罕见且虚假的连接和超时问题。(但是无论如何,我都想知道最佳实践)。 在MSDN上有关于此主题的文章,但它非常笼统且含糊。它不建议或推荐任何有用的东西。

3
启用触发器后,记录删除速度缓慢
以为通过以下链接可以解决此问题-解决方法可以正常工作-但补丁程序没有解决。与Microsoft支持人员一起解决。 http://support.microsoft.com/kb/2606883 好的,所以我有一个问题想扔给StackOverflow看看是否有人有想法。 请注意这是与SQL Server 2008 R2 问题:启用触发器后,从具有15000条记录的表中删除3000条记录需要3-4分钟,而禁用触发器则仅需要3-5秒。 表格设定 我们将两个表称为Main和Secondary。辅助数据库包含我要删除的项目的记录,因此在执行删除时,我会加入到辅助数据库表。进程在delete语句之前运行,以用要删除的记录填充辅助表。 删除声明: DELETE FROM MAIN WHERE ID IN ( SELECT Secondary.ValueInt1 FROM Secondary WHERE SECONDARY.GUID = '9FFD2C8DD3864EA7B78DA22B2ED572D7' ); 该表有很多列和大约14个不同的NC索引。在确定引发问题的原因之前,我尝试了多种尝试。 打开页面锁定(默认情况下我们已关闭) 手动收集统计数据 禁用自动收集统计信息 验证索引的健康状况和碎片 从表中删除聚簇索引 检查执行计划(没有显示为丢失的索引,对于实际删除,成本为70%,对于记录的合并/合并,成本约为28% 扳机 该表具有3个触发器(每个触发器分别用于插入,更新和删除操作)。我修改了删除触发器的代码以使其返回,然后选择一个以查看触发了多少次。在整个操作过程中,它仅触发一次(如预期)。 ALTER TRIGGER [dbo].[TR_MAIN_RD] ON [dbo].[MAIN] AFTER DELETE AS SELECT 1 RETURN 回顾 启用触发器-语句需要3-4分钟才能完成 关闭触发器-语句需要3-5秒才能完成 …

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.