PRB:Tempdb を拡張するとログ セグメントが不適切なデバイスに移動する

この記事は、以前は次の ID で公開されていました: JP141183
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
tempdb のトランザクション ログを別のデバイスに移動して、tempdb を拡張しようとすると、system、default、および logsegment セグメントを含む新しいデバイス フラグメントが作成されます。
原因
この問題は、tempdb のトランザクション ログを元のデバイスから移動した場合にのみ発生します。

SQL Server 6.0 でこの状態が発生すると、SQL Enterprise Manager は、追加のデータ領域がトランザクション ログに割り当てられたと間違って報告されます。

アプリケーションでも、次の Msg 1105 が発生する可能性があります。
Can't allocate space for object '<object name>' in database 'tempdb' because the 'default' segment is full. If you ran out of space in Syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase the size of the segment.

これは、トランザクション ログが、データ専用に設定された領域を使用しようとするために発生します。tempdb のトランザクション ログを切り捨てると、このエラーが解消する場合があります。
回避策
元のデバイス (通常はmaster) 上で tempdb のサイズを元の 2 MB に戻します。次に、目的の構成に拡張します。

SQL Server 4.21a の場合、tempdb を RAM に読み込んだ後、RAM から取り出すことができます。これにより、2 MB の tempdb 共有データ/ログ セグメントが既定のデータベース デバイスに作成されます。tempdb のサイズが大きすぎて RAM に入らない場合は、master デバイスを再構築すると、2 MB の既定の tempdb が master デバイス上に作成されます。



SQL Server 6.0 の場合は、上記のテクニックまたは DBCC SHRINKDB を使用できます。tempdb に対して DBCC SHRINKDB を使用するには、-m パラメータを指定してサーバーをシングル ユーザー モードで開始する必要があります。詳細については、SQL Server の『システム管理者ガイド』を参照してください。
詳細
tempdb のトランザクション ログを移動することによってパフォーマンスが改善されるかどうかは不明です。ログをダンプする理由もありません。tempdb のアクセス パフォーマンスを向上させるのであれば、tempdb を RAM に移動することを考慮して下さい。

tempdb の RAM への移動方法の詳細については、Microsoft Knowledge Base で次の記 事を参照してください。
115050 : INF: When to Use Tempdb In RAM

詳細
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 141183(最終更新日 1999-03-23) をもとに作成したものです。

プロパティ

文書番号:141183 - 最終更新日: 02/04/2014 17:47:08 - リビジョン: 1.1

  • Microsoft SQL Server 1.1 Standard Edition
  • kbnosurvey kbarchive kbtshoot kbbug6.00 kbusage ssrvadmin kbbug4.21a KB141183
フィードバック