Questions tagged «sql-server-2008-r2»

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

2
编写维护计划
我使用SQL Server Management Studio(SSMS)为SQL Server 2008 R2创建了维护计划。 但是,如果需要在另一台服务器上重做,则无法将其导出/转换为脚本。 有办法吗? 如果不是,是否可以使用更新版本的SQL Server?

2
在SQL中比较两个大型数据集的有效方法
目前,我正在比较两个包含唯一StoreKey/ProductKey组合的数据集。 第一个数据集具有StoreKey/ProductKey2012年1月开始至2014年5月结束之间的唯一销售组合(结果= 45万行)。第二个数据集具有独特的StoreKey/ProductKey组合,从2014年6月开始销售到今天(结果= 190K行)。 我正在寻找StoreKey/ProductKey第二组中的组合,但不在第一组中-即从6月初开始销售的新产品。 到目前为止,我已经将这两个数据集转储到了临时表中,在两个键上都为这两个表创建了索引,并使用该EXCEPT语句查找了唯一项。 比较这么大的数据集最有效的方法是什么?有没有更有效的方式进行这种大型比较?

4
如何使用密码将登录从2008R2转移到2014?
我已经尝试过Tasks>,Generate Scripts...并在“高级脚本选项”中设置了“脚本登录名”,但在输出中得到了此信息: /* For security reasons the login is created disabled and with a random password. */ 有没有一种简单的方法可以用密码对这些登录进行脚本编写,或者可以通过其他方法将登录从2008R2实例传输到2014实例?

11
如何找出2个SQL表之间的内容差异并生成同步SQL
我如何找出具有精确模式的两个表之间的数据差异,以及如何生成同步SQL以获取并集结果(无重复项)? 这些是2个表: SOURCE01.dbo.Customers (31,022 rows) TARGET01.dbo.Customers (29,300 rows) 每个表的模式为: [CustomerId] : nvarchar(255) [CustomerSerializedProfile]: nvarchar(max) [CreatedDatetime] : DateTime

1
如何解释这些DMV的结果以帮助我评估分区策略?
版本:SQL Server 2008 R2 Enterprise Edtn。(10.50.4000) 为了评估我们的分区策略,我编写了此查询来获取针对分区上索引的访问方法(从广义上讲,尽管我要消除堆)。当我将注意力集中在分区表上时,我相信我需要研究range_scan_count并且singleton_lookup_count在概念化方面遇到了困难。 SELECT t.name AS table_name, i.name AS index_name, ios.partition_number, leaf_insert_count, leaf_delete_count, leaf_update_count, leaf_ghost_count, range_scan_count, singleton_lookup_count, page_latch_wait_count , page_latch_wait_in_ms, row_lock_count , page_lock_count, row_lock_wait_in_ms , page_lock_wait_in_ms, page_io_latch_wait_count , page_io_latch_wait_in_ms FROM sys.dm_db_partition_stats ps JOIN sys.tables t ON ps.object_id = t.object_id JOIN sys.schemas s ON t.schema_id = s.schema_id …

1
SQL Server 2008 R2索引重建失败,严重性为17
有时,在进行索引维护期间,作业将因SEV 17错误而失败,因为该错误无法为正在重建的对象分配足够的空间。数据库的布局如下: Data_file1 PRIMARY 0 growth 0% free Max Size UNLIMITED Data_file2 PRIMARY 0 growth 0% free Max Size UNLIMITED Data_file3 PRIMARY 0 growth Less than 1% free Max Size UNLIMITED Data_file4 PRIMARY 250 MB growth Less than 1% free Max Size UNLIMITED 本质上,4个数据文件中的3个已满并且不允许增长,第四个已满并且允许增长。文件分散在不同的LUN上(以及混乱的原因)。因此,当我开始进行联机索引重建时,据我了解,如果需要任何额外空间,它将增长到Data_file4中并且很好,但是显然它正在尝试增长到不允许增长且失败的其他文件中。我无法重现此错误,但我想知道是否有人了解为什么会发生这种情况。 完整的SQL Server版本是2008 R2 Enterprise SP2 CU …

1
SQL Server-向用户授予数据库DBO权限
我有一个报告数据库,每天晚上都从生产数据库的备份中还原。还原时,需要将用户添加到该DBO数据库的角色中。 我认为这可以工作: use Restored_Prod go exec sp_addrolemember 'db_owner', 'chris' go 但是我收到以下错误,因为Restored_Prod数据库中不存在该用户: Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75 User or role 'chris' does not exist in this database. 如何将用户“ chris”添加到数据库中,以便能够运行sp_addrolemember使其成为DBO该数据库的成员?有没有一种方法可以使用sp_addrolemember用户所在的主数据库中的命令添加用户权限?

1
如果交易是“已提交”的,那么可以确定将其保存吗?
如果事务成功提交,那么我能否100%确保已将其写入数据库和日志文件?我可以确定数据已保存吗? 今天,我们的日志文件已达到驱动器的极限,并且出现了很多错误。此外,其他一些服务崩溃了。我们增加了磁盘并重新启动了服务器。 在启动过程中,服务器进行了“数据库恢复”-我可以确定一切都还好吗?

1
如何正确解决合并复制错误冲突
我们有SQL Server 2008 R2合并复制设置。 最近,我开始对某些表产生冲突,当我检查冲突查看器时,我可以看到赢者和输者列的值是相同的! 我确定这些数据只能由一个订户输入。 我曾经sp_showrowreplicainfo获得有关冲突行的更多详细信息,但我得到了2行:一行用于发布者,一行用于订阅者,两行的“版本”均为1。 我还实现了Brandon的方法:审核Merge Replication中的更改,但它仅显示正常的插入! 您能告诉我如何开始解决此类冲突吗?

2
为什么此查询不使用我的非聚集索引,我该如何进行查询?
在跟进有关提高查询性能的这个问题之后,我想知道是否有一种方法可以使我的索引默认使用。 该查询运行大约2.5秒: SELECT TOP 1000 * FROM [CIA_WIZ].[dbo].[Heartbeats] WHERE [DateEntered] BETWEEN '2011-08-30' and '2011-08-31'; 这大约需要33毫秒: SELECT TOP 1000 * FROM [CIA_WIZ].[dbo].[Heartbeats] WHERE [DateEntered] BETWEEN '2011-08-30' and '2011-08-31' ORDER BY [DateEntered], [DeviceID]; [ID]字段(pk)上有一个聚集索引,[DateEntered],[DeviceID]上没有聚集索引。第一个查询使用聚集索引,第二个查询使用我的非聚集索引。我的问题分为两个部分: 为什么,由于两个查询在[DateEntered]字段上都有WHERE子句,服务器为什么在第一个而不是第二个上使用聚集索引? 即使没有orderby,如何使该查询默认使用非聚集索引?(或者为什么我不想要那种行为?)


3
SQL Server 2008 R2“虚拟内存”?
我们有一台专用的SQL Server 2008 R2计算机,它遇到一些奇怪的内存问题。该计算机本身具有大量资源,包括两个四核处理器,16GB RAM和64位Windows Server 2008 R2 Enterprise(它是Dell PowerEdge 2950) 。 奇怪的问题是系统报告正在使用的内存为82%,而sqlservr.exe仅报告了使用的内存为155mb。我怀疑SQL Server是问题的原因是因为如果重新启动sqlservr.exe进程,则一段时间内内存消耗将恢复正常。 有人对我如何开始追踪此问题有任何想法吗? 谢谢,杰森

3
“数据库正在转换”错误
今天,我正在尝试通过现有数据库还原数据库,我只是在SSMS中右键单击该数据库->任务->脱机,以便可以还原该数据库。 一个小弹出窗口出现并显示Query Executing.....了一段时间,然后抛出了一个错误说Database is in use cannot take it offline。我从中收集到该数据库的一些活动连接,因此我尝试执行以下查询 USE master GO ALTER DATABASE My_DatabaseName SET OFFLINE WITH ROLLBACK IMMEDIATE GO SSMS此时再次显示Query Executing.....一段时间,然后引发以下错误: Msg 5061, Level 16, State 1, Line 1 ALTER DATABASE failed because a lock could not be placed on database 'My_DatabaseName'. Try again later. Msg 5069, …

4
从正在执行的作业中获取作业ID或作业名称
我有一个中央数据库,可以在所有服务器上写入工作结果。我通过SQL作业中的powershell将3个参数传递回中央服务器上的sp,以验证该作业应在当时运行,等等。然后通过SSRS公开该信息,因此我们可以看到作业失败/长时间运行的作业/ &尚未运行但应该运行的作业(或者如果有人弄乱了时间表)。 为此,我将2个作业步骤添加到每台服务器上的每个作业中,并且我希望将脚本减少到仅添加到每个作业中的1个步骤。甚至可能从网络共享中调用该脚本。 但是我的问题是我传递的三个参数之一。我需要从正在执行的作业中获取正在执行的作业ID或作业名称,因此不必硬编码name参数。我传递的3个参数是Jobid,状态(成功/失败)和errormsg。我编写的powershell脚本非常简单。 调用sqlcmd -ServerInstance“ MYRemoteSYSTEM”-数据库remoteDB-查询“ exec dbo.JOB_LOG'JOBNAME / ID','成功/失败','错误消息在这里''' 这将我需要的东西写到桌子上。我已经看过msdb.dbo.sp_help_job / msdb.dbo.sp_get_composite_job_info / dbo.xp_sqlagent_enum_jobs /,但是这些都不保证在执行多个作业的情况下,我可以获得正确执行作业的ID或名称。同时。 我什至尝试查看sys.sysprocesses,但我认为由于代理作业是一个powershell脚本,因此它显示为“ .Net SqlClient数据提供程序”,因此我无法从显示为“ SQLAgent-”的作业中删除二进制JOBID。 TSQL JobStep(作业0xF1800243164745429C30474FFD5C990C:第1步)” ---我从Denny Cherry的帖子中学到的 -谢谢denny- 任何关于如何获取执行中的Jobid的想法将不胜感激。 谢谢, 克里斯

4
从RESTORE HEADERONLY中提取字段
我正在尝试使用“ RESTORE HEADERONLY ”来获取进行我要还原的备份的日期。 命令: RESTORE HEADERONLY FROM DISK = '<path to .bak file>' 在查询分析器中可以很好地工作,并提供一个包含50列的结果集。 问题实际上是从代码访问它。 通过声明50:ish列中的每一个,将其插入到temp表中,exec然后从中获取所需的值。 问题是我真的想避免将整个结果集声明为临时表,因为如果将来的版本中向它们添加列,这似乎是一个非常脆弱的解决方案。 有什么方法可以从结果集中只获取一个列而不声明所有列吗?

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.