スポンサーリンク
coen公式ファッション通販
スポンサーリンク

Linux+SQLServer2017のtempdbチューニング

CentOS

SQLServerのパフォーマンスチューニングでは、tempdbのデータファイル数とログファイル数を、CPUコア数に合わせるのは必須。
SQLServerをLinuxにインストールした場合、データファイルとログファイルが1ファイルづつしか作られないので、手動で CPUコア数分、ファイルを追加する必要がある 。

下記は、CPU論理コア×4 の CentOS で稼働しているSQLServerの、tempdb にデータファイル、ログファイルを追加する手順。

1. CentOSのコンソールで、sqlcmdを使ってSQLServerにログイン。

# sqlcmd -S localhost -U sa
Password:(パスワード)

> USE [master]
> GO

2. 既存tempdb ファイルの拡張設定を、64MB毎から10%毎へ変更。

> ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N’tempdev’, FILEGROWTH = 10%)
> ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N’templog’, FILEGROWTH = 10%)
> GO

3. 既存tempdb の名称をナンバリング有りの名称に変更。

> ALTER DATABASE [tempdb] MODIFY FILE (NAME=N’tempdev’, NEWNAME=N’tempdev1′)
> ALTER DATABASE [tempdb] MODIFY FILE (NAME=N’templog’, NEWNAME=N’templog1′)
> GO

4. tempdb ファイル数をコア数に合わせて追加。

> ALTER DATABASE [tempdb] ADD FILE ( NAME = N’tempdev2′, FILENAME = N’/var/opt/mssql/data/tempdb2.mdf’ , SIZE = 8192KB , FILEGROWTH = 10% , MAXSIZE = UNLIMITED)
> ALTER DATABASE [tempdb] ADD FILE ( NAME = N’tempdev3′, FILENAME = N’/var/opt/mssql/data/tempdb3.mdf’ , SIZE = 8192KB , FILEGROWTH = 10% , MAXSIZE = UNLIMITED)
> ALTER DATABASE [tempdb] ADD FILE ( NAME = N’tempdev4′, FILENAME = N’/var/opt/mssql/data/tempdb4.mdf’ , SIZE = 8192KB , FILEGROWTH = 10% , MAXSIZE = UNLIMITED)
> ALTER DATABASE [tempdb] ADD LOG FILE ( NAME = N’templog2′, FILENAME = N’/var/opt/mssql/data/templog2.ldf’ , SIZE = 8192KB , FILEGROWTH = 10% , MAXSIZE = UNLIMITED)
> ALTER DATABASE [tempdb] ADD LOG FILE ( NAME = N’templog3′, FILENAME = N’/var/opt/mssql/data/templog3.ldf’ , SIZE = 8192KB , FILEGROWTH = 10% , MAXSIZE = UNLIMITED)
> ALTER DATABASE [tempdb] ADD LOG FILE ( NAME = N’templog4′, FILENAME = N’/var/opt/mssql/data/templog4.ldf’ , SIZE = 8192KB , FILEGROWTH = 10% , MAXSIZE = UNLIMITED)
> GO

5. UNLIMITEDにならないSQLServerのバグに対処。

> ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N’templog2′, MAXSIZE = UNLIMITED)
> ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N’templog3′, MAXSIZE = UNLIMITED)
> ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N’templog4′, MAXSIZE = UNLIMITED)
> GO

テストした環境。

OSのバージョン

CentOS Linux release 7.6.1810 (Core)

SQLServerのバージョン

Microsoft SQL Server 2017 (RTM-CU15-GDR) (KB4505225) – 14.0.3192.2 (X64) Jun 15 2019 00:45:05 Copyright コピーライトマーク 2017 Microsoft Corporation Developer Edition (64-bit) on Linux (CentOS Linux 7 (Core))

参考
RHEL 7 にツールをインストールします。
パフォーマンスのベスト プラクティスと SQL Server on Linux の構成ガイドライン
Tempdb データベースを SQL Server に割り当て時の競合を減らすための推奨事項
最新のSQLServerでバグを見つけました

コメント

スポンサーリンク
ノートンストア
スポンサーリンク
フェリシモ「コレクション」
タイトルとURLをコピーしました