SQL Serverのメモリ不足の解決、およびMDF、LDFファイルが大きすぎてアクセスが遅いという問題
9528 ワード
第一に、ブロガーshield-handの文章に感謝します(ms sql serverキャッシュクリアとメモリ解放).非常に細かく、簡潔に書かれています.私はここで自分でブログを書くのではなく、自分の思考で多くのブログや公式サイトの資料を統合します.
問題の原因を説明する前に、解決策を貼っておきます.その後、その深層の原因を詳しく分析する.
ms sql serverキャッシュクリアとメモリ解放この文章はすでに非常に完璧な案を提供しているので、私はもう余計なことを言わない.スクリプト操作では、次の形式に変更することが望ましいという問題があります.
MDF、LDFファイルが大きすぎてアクセスが遅いという問題:
もう1つのケースは、データベースにアクセスし続けることができますが、非常に遅いことです.MDF(Master Database File)とLDF(Log Database File)のファイルが大きいことを確認します.
発生原因:
インデックスの断片化が多すぎます.
頻繁なDB操作は、テンポラリ・テーブルとストレージ・プロセスがタイムリーにクリーンアップされていない場合.
異常の場合、占有しているDBスペースは解放されません.
ソリューション:
ディスクの整理.あるいはシステムをアップグレードして、単一ディスクのディスクのアレイを回転します;
複数のデータベースに分割します.
DBを再構築し、複数のファイルグループに分け、異なるテーブルを格納し、ファイルグループを異なるディスクに格納します.
DBインデックスの再構築
MDF、LDFを収縮します.
このうち、上記のソリューションの中で最も実現しやすく、最も容易なのはMDFファイルとLDFファイルの縮小です.
ネット上には多くの図文が茂っている操作方法があり、これ以上説明しません.オペレータがいるプログラマーは、実行可能なSQLコードを与えるべきです.
以下に示す例は、SQL Server 2008上で実行するのに適しています.SQL Server 2005とSQL Server 2000の例がたくさんありますが、今はもう意味がありません!
次のコード・データベース名は「IVMS 8100 v 3」です.確認してください.
参考文献:
ms sql serverキャッシュクリアとメモリ解放
sql server 2005のメモリを解放するにはどうすればいいですか?
Windows 2003 serverパフォーマンスモニタ(回転)
SQL Serverストレージ・プロシージャ
ストレージ・プロシージャの作成経験と最適化
SQL SERVER読書ノート:メモリ
ログファイル圧縮
SQL Server 2008ログファイルをクリア
SQL Server 2008クリア削除ログファイル130 Gログ10秒以内に10 Mになる.
SQLServer 2005 logファイルとクリアログを削除するシナリオ(このスキームはビュー操作であり、初心者が参照できる.)
問題の原因を説明する前に、解決策を貼っておきます.その後、その深層の原因を詳しく分析する.
ms sql serverキャッシュクリアとメモリ解放この文章はすでに非常に完璧な案を提供しているので、私はもう余計なことを言わない.スクリプト操作では、次の形式に変更することが望ましいという問題があります.
USE [IVMS8100]
GO
/****** Object: StoredProcedure [dbo].[ClearMemory] Script Date: 04/13/2010 14:28:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/***start***/
----
CREATE PROCEDURE [dbo].[ClearMemory]
AS
BEGIN
--
DBCC DROPCLEANBUFFERS
--
EXEC sp_configure 'show advanced options', 1
---- ,
EXEC sp_configure 'max server memory', 256
EXEC ('RECONFIGURE')
--
WAITFOR DELAY '00:00:01'
--
EXEC sp_configure 'max server memory', 4096
EXEC ('RECONFIGURE')
--
EXEC sp_configure 'show advanced options',0
END
/***end***/
MDF、LDFファイルが大きすぎてアクセスが遅いという問題:
もう1つのケースは、データベースにアクセスし続けることができますが、非常に遅いことです.MDF(Master Database File)とLDF(Log Database File)のファイルが大きいことを確認します.
発生原因:
インデックスの断片化が多すぎます.
頻繁なDB操作は、テンポラリ・テーブルとストレージ・プロセスがタイムリーにクリーンアップされていない場合.
異常の場合、占有しているDBスペースは解放されません.
ソリューション:
ディスクの整理.あるいはシステムをアップグレードして、単一ディスクのディスクのアレイを回転します;
複数のデータベースに分割します.
DBを再構築し、複数のファイルグループに分け、異なるテーブルを格納し、ファイルグループを異なるディスクに格納します.
DBインデックスの再構築
MDF、LDFを収縮します.
このうち、上記のソリューションの中で最も実現しやすく、最も容易なのはMDFファイルとLDFファイルの縮小です.
ネット上には多くの図文が茂っている操作方法があり、これ以上説明しません.オペレータがいるプログラマーは、実行可能なSQLコードを与えるべきです.
以下に示す例は、SQL Server 2008上で実行するのに適しています.SQL Server 2005とSQL Server 2000の例がたくさんありますが、今はもう意味がありません!
次のコード・データベース名は「IVMS 8100 v 3」です.確認してください.
-- MDF:
DBCC SHRINKFILE ('IVMS8100v3',1)
-- LDF:
USE [master]
GO
ALTER DATABASE IVMS8100v3 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE IVMS8100v3 SET RECOVERY SIMPLE --
GO
USE IVMS8100v3
GO
DBCC SHRINKFILE (N'IVMS8100v3_log' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE IVMS8100v3 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE IVMS8100v3 SET RECOVERY FULL --
GO
参考文献:
ms sql serverキャッシュクリアとメモリ解放
sql server 2005のメモリを解放するにはどうすればいいですか?
Windows 2003 serverパフォーマンスモニタ(回転)
SQL Serverストレージ・プロシージャ
ストレージ・プロシージャの作成経験と最適化
SQL SERVER読書ノート:メモリ
ログファイル圧縮
SQL Server 2008ログファイルをクリア
SQL Server 2008クリア削除ログファイル130 Gログ10秒以内に10 Mになる.
SQLServer 2005 logファイルとクリアログを削除するシナリオ(このスキームはビュー操作であり、初心者が参照できる.)