9. ついでに NUMA ノード数
• 負荷をかけている最中に [sys.dm_exec_connections] の
[node_affinity] を取得
– 接続単位にどの NUMA ノードに接続がされているかを確認できる
2012/09 に取得
2 NUMA ノード構成らしい
おそらく 2 物理 CPU ソケット
2 CPU : 8 コア環境かも
9
10. 参考)使用したクエリ
-- スケジューラー数
SELECT
scheduler_id,
COUNT(*) AS RequestCount
FROM
sys.dm_exec_requests
GROUP BY
scheduler_id
-- NUMA ノード数
SELECT
node_affinity
, COUNT(*)
FROM
sys.dm_exec_connections
GROUP BY
node_affinity
10
14. データファイル数の取得方法
• 大量のロックを取得してロックがかかっているページ番号を
[sys.dm_tran_locks] から取得してグルーピング
– ファイル ID : ページ ID の形式の情報 が取得できる
2011/06 に取得
2012/09 に取得
データファイルは 10 ファイルで
構成されているらしい
※ファイル ID 2 はログファイル 14
15. 参考)使用したクエリ
SET NOCOUNT ON
CREATE TABLE [dbo].[Table_1](
[Col1] [uniqueidentifier] NOT NULL,
[Col2] [int] NULL,
[Col3] [char](4500) NULL,
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
([Col1] ASC)
)
BEGIN TRAN
DECLARE @i int = 0
WHILE (@i < 100000)
BEGIN
INSERT INTO Table_1 VALUES(NEWID(), @i , NEWID())
SET @i += 1
END
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRAN
DELETE FROM Table_1
SELECT DISTINCT CONVERT(int, LEFT(resource_description,PATINDEX('%:%',resource_description) -1))
FROM sys.dm_tran_locks
WHERE resource_type = 'PAGE'
ORDER BY 1
ROLLBACK TRAN
DROP TABLE [dbo].[Table_1]
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
15
20. 参考)使用したクエリ
-- 負荷用
SET NOCOUNT ON
CREATE TABLE [dbo].[#Table_1](
[Col1] [uniqueidentifier] NOT NULL,
[Col2] [int] NULL,
[Col3] [char](3000) NULL,
CONSTRAINT [PK_#Table_1] PRIMARY KEY CLUSTERED
([Col1] ASC)
)
DECLARE @i int = 0
WHILE (@i < 400000)
BEGIN
INSERT INTO #Table_1 VALUES(NEWID(), @i , NEWID())
SET @i += 1
END
ALTER INDEX PK_#Table_1 ON #Table_1 REBUILD
UPDATE #Table_1 SET Col1 = NEWID()
DELETE FROM #Table_1
DROP TABLE [dbo].[#Table_1]
-- 情報取得用
SET NOCOUNT ON
CREATE TABLE #tmp(Col1 nvarchar(100), Col2 nvarchar(100))
WHILE (0=0)
BEGIN
INSERT INTO #tmp
SELECT wait_type, wait_resource
FROM sys.dm_exec_requests
WHERE wait_type IS NOT NULL AND wait_resource <>''
END
SELECT DISTINCT LEFT(COl2,PATINDEX('2:%',Col2)+3)
FROM #tmp
WHERE LEFT(COl2,PATINDEX('2:%',Col2)) = 2
ORDER BY 1
20