除了重新安装软件之外,是否有一种简单的方法可以使用 SQL 实例“从头开始”?我的意思是:
我在网上找不到有关如何执行此操作的任何信息。
使用 SQL Server 2008 到 2014 年,我知道如何在启用变更数据捕获 (CDC) 的情况下备份和恢复数据库,但我正在寻找一种查询完整备份文件以确定它是否包含 CDC 数据的方法。
像RESTORE FILELISTONLY这样从数据库中获取文件列表,而是获取 CDC 状态以确定还原是否需要使用 KEEP_CDC 标志的方法会很棒吗?
有没有办法确定备份是否包含 CDC 数据?
谢谢!
sql-server-2008 sql-server sql-server-2012 change-data-capture sql-server-2014
给定一个 SourceTable 和一个 TargetTable,我想以编程方式创建一个需要所有连接的字符串。
简而言之,我试图找到一种方法来创建这样的字符串:
FROM SourceTable t
JOIN IntermediateTable t1 on t1.keycolumn = t.keycolumn
JOIN TargetTable t2 on t2.keycolumn = t1.keycolumn
Run Code Online (Sandbox Code Playgroud)
我有一个查询返回给定表的所有外键,但是在尝试递归运行所有这些以找到最佳连接路径并生成字符串时遇到了限制。
SELECT
p.name AS ParentTable
,pc.name AS ParentColumn
,r.name AS ChildTable
,rc.name AS ChildColumn
FROM sys.foreign_key_columns fk
JOIN sys.columns pc ON pc.object_id = fk.parent_object_id AND pc.column_id = fk.parent_column_id
JOIN sys.columns rc ON rc.object_id = fk.referenced_object_id AND rc.column_id = fk.referenced_column_id
JOIN sys.tables p ON p.object_id = fk.parent_object_id
JOIN sys.tables r ON r.object_id = fk.referenced_object_id
WHERE fk.parent_object_id = OBJECT_ID('aTable')
ORDER …Run Code Online (Sandbox Code Playgroud) 我在以下服务器上安装了 2 个 sql server 和 SSIS 实例。
请注意 RAM 量接近 384 GB
这是我应用于 2 个实例的最大和最小内存设置。我假设两个实例将使用相同数量的资源,如果真的是这样,184,320 MB 也就是 180 GB 是设置内存的一个很好的起始数字?
我会为 SSIS 分配多少内存?
当我从 Windows 8.1 升级到 Windows 10 时,我注意到 SQL Server 配置管理器中的 SQL Server 服务是空的。目前,SQL Server 仍然运行良好。SQL Server 2014 安装在本地计算机上。
我读过博客 - https://www.mssqltips.com/sqlservertip/2492/why-is-sql-server-configuration-manager-missing-services/和 http://www.sqlservercentral.com/Forums/Topic1469391- 1292-1.aspx仍然无法解决问题。
我备份了数据库,卸载并重新安装,但节点仍然是空的。我该怎么办?
更新了屏幕截图
SQL Server 配置管理器屏幕
我在我的 PC 上运行 SQL Server 2014 Developer Edition。我正在尝试查看 system_health 会话中的数据。在SSMS中,我已经连接到数据库,扩展了服务器/管理/扩展事件/会话。我看到 AlwaysON_health(停止)和 system_health(运行)。
当我右键单击 system_health 会话时,出现以下错误:
使用提供的参数初始化存储失败。(Microsoft.SqlServer.XEventStorage) 找不到名为“system_health”的扩展事件会话。确保会话存在并已启动。(Microsoft SQL Server,错误:25728)
我展开 system_health 并看到目标 package0.event_file 和 package0.ring_buffer。如果我右键单击任一目标并选择“查看目标数据”,则会出现此错误:
使用提供的参数初始化存储失败。(Microsoft.SqlServer.XEventStorage) 无法查看函数“fn_MSXe_read_event_stream”,因为它不存在或您没有权限。(Microsoft SQL Server,错误:15151)
该功能确实存在。我可以运行它:
select * from fn_MSXe_read_event_stream('system_health', 0);
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到此错误:
Msg 25728, Level 16, State 10, Line 6
The Extended Events session named "system_health" could not be found. Make sure the session exists and is started.
Run Code Online (Sandbox Code Playgroud)
我知道 system_health 会话在那里。我在会议列表中看到:
select * from sys.dm_xe_sessions
address name name
------------------ -------------
0x00000001FF6510C1 system_health
Run Code Online (Sandbox Code Playgroud)
我已经用我自己的自定义事件会话尝试过这个。我也看不到他们的实时数据。
我可以从sys.dm_xe_session_targets. …
我有一台刚刚重新启动的服务器,并使用以下命令验证了哪些跟踪标志处于活动状态DBCC TRACESTATUS:
跟踪标志:3688 功能:将有关跟踪开始和停止的消息删除到错误日志
在这里您可以看到每个跟踪标志的作用。
启动参数如下:
题:
如何通过 T-SQL 找到 SQL Server 服务的启动参数?
编辑:为什么会话报告被阻止但等待PAGELATCH_*,而不是LCK_M_相关的等待类型?
我之前假设 SQL Server 只会在 blocks_session_Id 列中报告阻塞会话。如果被阻塞的会话正在等待逻辑锁而不是其他任何东西,例如PAGELATCH_*.
我正在尝试诊断一个间歇性需要很长时间的查询。我怀疑它可能在尝试获取锁时被阻止。我无权在遇到问题的环境中使用探查器。
有什么方法可以让我在不使用外部分析器的情况下获取有关此单个查询被阻止多长时间的统计信息?
TRUSTWORTHY如果您不小心,该设置可能会相当危险,除特定情况外,建议将其关闭。但是默认情况下,MSDB数据库TRUSTWORHTY设置ON默认。我很好奇为什么?
我已阅读BOL 中的此条目
注意默认情况下,MSDB 数据库的 TRUSTWORTHY 设置设置为 ON。更改此设置的默认值可能会导致使用 MSDB 数据库的 SQL Server 组件出现意外行为。
但我对具体情况很好奇。为什么具体MSDB需要TRUSTWORTHY开启?什么功能使用它?
security sql-server sql-server-2008-r2 sql-server-2012 sql-server-2014
sql-server ×10
sql-server-2014 ×10
blocking ×1
locking ×1
memory ×1
optimization ×1
recursive ×1
security ×1
ssis ×1
ssis-2014 ×1
t-sql ×1
wait-types ×1
windows-10 ×1