SQL Server tempdb分割のクエリ
SQL Serverの設計として、tempdbをサーバーのコア数分分けた方がよいという話をよく聞きます。
じゃぁ分割しようと気軽に思って調べたときに、なかなか具体的な分割手法が検索にヒットせず、だいたいが説明のみで「そういうのいいから、今は分割したいんだ!」という時に歯痒い思いをしました。(理由や背景は知っておいた方がよいというのは別として。)
だったら自分自身でメモとして残しておこうと、行動に起こした結果がこの記事です(笑)変数の値を変更すれば流用できるようにしてみました。削除・追記して環境に合わせてカスタマイズしてくださいー。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
-- クエリ変数定義 DECLARE @QUERY VARCHAR(max) -- システムデータベースディレクトリ DECLARE @PATH AS varchar(100) = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\' -- ファイルの初期サイズ DECLARE @FILESIZE AS varchar(10) = N'100MB' -- ファイルの自動拡張サイズ DECLARE @FILEGROWTH AS varchar(10) = N'100MB' -- tempdbファイル名 DECLARE @TEMPDB01 AS varchar(100) = N'tempdev01' DECLARE @TEMPDB02 AS varchar(100) = N'tempdev02' DECLARE @TEMPDB03 AS varchar(100) = N'tempdev03' DECLARE @TEMPDB04 AS varchar(100) = N'tempdev04' DECLARE @TEMPDB05 AS varchar(100) = N'tempdev05' DECLARE @TEMPDB06 AS varchar(100) = N'tempdev06' DECLARE @TEMPDB07 AS varchar(100) = N'tempdev07' DECLARE @TEMPDB08 AS varchar(100) = N'tempdev08' -- TEMPDB01の変更 SET @QUERY = N'Alter database tempdb modify file(newname = ' + @TEMPDB01 + ', name = tempdev)' EXEC (@QUERY) SET @QUERY = N'Alter database tempdb modify file(name = ' + @TEMPDB01 + ', filename = "' + @PATH + @TEMPDB01 + '.mdf", SIZE = ' + @FILESIZE + ', FILEGROWTH = ' + @FILEGROWTH + ')' EXEC (@QUERY) -- TEMPDB02の追加 SET @QUERY = N'Alter database tempdb add file(name = ' + @TEMPDB02 + ', filename = "' + @PATH + @TEMPDB02 + '.mdf", SIZE = ' + @FILESIZE + ', FILEGROWTH = ' + @FILEGROWTH + ')' EXEC (@QUERY) -- TEMPDB03の追加 SET @QUERY = N'Alter database tempdb add file(name = ' + @TEMPDB03 + ', filename = "' + @PATH + @TEMPDB03 + '.mdf", SIZE = ' + @FILESIZE + ', FILEGROWTH = ' + @FILEGROWTH + ')' EXEC (@QUERY) -- TEMPDB04の追加 SET @QUERY = N'Alter database tempdb add file(name = ' + @TEMPDB04 + ', filename = "' + @PATH + @TEMPDB04 + '.mdf", SIZE = ' + @FILESIZE + ', FILEGROWTH = ' + @FILEGROWTH + ')' EXEC (@QUERY) -- TEMPDB05の追加 SET @QUERY = N'Alter database tempdb add file(name = ' + @TEMPDB05 + ', filename = "' + @PATH + @TEMPDB05 + '.mdf", SIZE = ' + @FILESIZE + ', FILEGROWTH = ' + @FILEGROWTH + ')' EXEC (@QUERY) -- TEMPDB06の追加 SET @QUERY = N'Alter database tempdb add file(name = ' + @TEMPDB06 + ', filename = "' + @PATH + @TEMPDB06 + '.mdf", SIZE = ' + @FILESIZE + ', FILEGROWTH = ' + @FILEGROWTH + ')' EXEC (@QUERY) -- TEMPDB07の追加 SET @QUERY = N'Alter database tempdb add file(name = ' + @TEMPDB07 + ', filename = "' + @PATH + @TEMPDB07 + '.mdf", SIZE = ' + @FILESIZE + ', FILEGROWTH = ' + @FILEGROWTH + ')' EXEC (@QUERY) -- TEMPDB08の追加 SET @QUERY = N'Alter database tempdb add file(name = ' + @TEMPDB08 + ', filename = "' + @PATH + @TEMPDB08 + '.mdf", SIZE = ' + @FILESIZE + ', FILEGROWTH = ' + @FILEGROWTH + ')' EXEC (@QUERY) |