我有一台运行 SQL Server 实例的物理服务器。
我注意到这个服务器经常以 100% 的 CPU 使用率运行。
我的 IT 团队对此并不满意,并建议我们为操作系统保留 32 个内核中的 2 个。
这很好用,现在最大使用峰值略低于 90%。此外,不再报告来自不同用户的缓慢数据检索。
是否有任何理由不以这种方式使用 WSRM(Windows 系统资源管理器)而不是 SQL 资源调控器?
我有一个这样设置的表:
DB 有 10B 行。
CREATE TABLE [Tick].[X_H](
[utcDT] [datetime2](7) NOT NULL,
[Symbol] [nvarchar](50) NOT NULL,
[Bid] [float] NULL,
[Ask] [float] NULL,
[BidSize] [float] NULL,
[AskSize] [float] NULL
) ON [PRIMARY]
ALTER TABLE [Tick].[X_H] ADD CONSTRAINT [PK_Master] PRIMARY KEY CLUSTERED
(
[utcDT] ASC,
[Symbol] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = ON, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
Run Code Online (Sandbox Code Playgroud)
我想为特定符号选择一天的数据。我在用:
SELECT *
FROM [Tick].[X_H]
WHERE [Symbol] = 'DONKEY'
AND CONVERT(Date, [utcDT]) = …
Run Code Online (Sandbox Code Playgroud) 我有一个远程 MS SQL Server,我有几种类型的查询。
我运行了一些属于低延迟生产应用程序一部分的查询,并且需要确保它们及时停止。
但我也有“研究”查询,这些查询往往占用大量 CPU。
如何设置分类器,以便不同的查询(来自同一用户)使用不同的资源池运行,以便我的研究查询不会占用所有 CPU?
我被困在如何做到这一点上,因为我无法按用户区分。