我有一个数据库,其中 DBCC CHECKTABLE 在许多小表或空表上运行需要超过 15 分钟。当它完成时,没有失败或错误。服务器上其他所有内容的性能都处于非常可接受的状态。同时没有其他东西在运行。
我还尝试了 DBCC CLEANTABLE 并使用全扫描更新了统计信息。
我使用的是 SQL Server 2016 企业版 (13.0.5201.2)
示例表:
CREATE TABLE [Schema1].[Table1](
[col1] [int] NOT NULL,
[col2] [nvarchar](100) NOT NULL,
[col3] [xml] NOT NULL,
CONSTRAINT [PK_1] PRIMARY KEY CLUSTERED
(
[col1] ASC,
[col2] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud) 我希望利用 dbatools powershell 模块来满足我们的 SQL Server 管理需求。安装过程不适合跨大量服务器进行安装。在环境中的所有 SQL Server 上安装 dbatools 或利用我们用于数据库管理的服务器作为安装和管理的中心位置是否真的有必要,甚至是最佳实践?似乎我看过的很多命令都可以远程使用。谢谢你。
当我运行以下命令时,我得到 3 个索引列:
SELECT b.name,
c.name
FROM sys.index_columns a
INNER JOIN sys.indexes b ON a.object_id = b.object_id
AND a.index_id = b.index_id
INNER JOIN sys.columns c ON b.object_id = c.object_id
AND a.column_id = c.column_id
WHERE b.object_id = OBJECT_ID('dbo.MyTableIssue')
AND b.name = 'IX_MyTableIssue_ColId_Col2Id'
Run Code Online (Sandbox Code Playgroud)
返回:
IX_MyTableIssue_ColId_Col2Id ColId
IX_MyTableIssue_ColId_Col2Id Col2Id
IX_MyTableIssue_ColId_Col2Id ColDate
Run Code Online (Sandbox Code Playgroud)
但是当我右键单击,脚本索引然后创建到新的查询窗口时,我得到以下信息:
CREATE NONCLUSTERED INDEX [IX_MyTableIssue_ColId_Col2Id] ON [dbo].[MyTableIssue]
(
[ColId] ASC,
[Col2Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS …
Run Code Online (Sandbox Code Playgroud)