昨日、SQL Server 2005データベースをSQL Server 2012に移行しました。完全バックアップを作成し、それを新しいサーバーに復元しました。
今問題は、SQL Server 2012上のデータベースがSQL Server 2005を搭載したWindows 2003サーバー上のデータベースよりもはるかに遅いことです。さらに心配なのは、まったく同じメンテナンスプラン(SQL Server 2005での実行に37分かかった)であるということです。現在2時間以上かかり、16GBのメモリを使用しており、tempdb
はC:
ドライブ。どうしたの?
サーバーの仕様はどちらも同じです。
保守計画は、次の手順で構成されています。
対処すべきことがたくさんあります。以下は、結論に飛びつく前に確認すべき事項の概要です。
まず、POST復元手順のシーケンスは、実行したすべての作業を台無しにします。特にインデックスのメンテナンスを行った後は、データベースを縮小しないでください。
読み上げ-なぜデータファイルを縮小すべきでないかポールランダルによる。
以下は、下位バージョンから上位バージョンへの移行の一般的な復元後の手順です。あなたの場合、SQL Server 2005から2012まで。
DBCC UPDATEUSAGE('database_name') WITH COUNT_ROWS
Update Statistics table_name with FULLSCAN
sp_recompile 'procedureName'
を使用してすべてのSPを再コンパイルしますSP_REFRESHVIEW view_name
補足として:
この問題にも遭遇しました。この理由により、2008R2エディションを保持しています。
SQL Server 2012以降、SQL Serverの各エディションには2つの計算能力の制限があります:ソケットの最大数(物理プロセッサーまたはソケットまたはプロセッサーパッケージと同じ)。オペレーティングシステムによって報告されるコアの最大数。
http://technet.Microsoft.com/en-US/library/ms143432(v = sql.110).aspx#Engine
「完全バックアップを作成し、新しいサーバーに復元しました。サーバーの仕様はどちらも同じです。
X5650 @ 2.67GHz(4procs)16 GB RAM "
古いサーバーとまったく同じ仕様の新しいサーバーを購入しましたか?または、これはVMですか?
Kinが行ったすべてのポイントを含め、最新の累積的な更新プログラムを使用してSP1をインストールする必要があります。以下を含む多くのパフォーマンス修正があります。
FIX:SQL Server 2012でクエリを実行すると、次善の実行プランが生成されます。IX:SQL Server 2012でchar、varchar、またはnvarcharタイプの列にインデックスを作成しようとすると、システムメモリ不足エラーが発生します。
修正:SQL Server 2012で同時クエリを実行するワークロードを実行すると、「非降伏リソースモニター」。
修正:SQL Server 2012 Standard Editionでは、スレッドが均等にスケジュールされません。
修正:SQL Server 2008 R2のWHERE句でLIKE演算子を使用するクエリを実行すると、パフォーマンスが低下します。 SQL Server 2012でクエリを実行すると、メモリダンプが作成される場合があります。