OLD
OS WIN NT4.0SP5 スタンダード
DB SQLサーバー7.0 スタンダード
WEB ASP
NEW
OS WIN WIN2003 SP1 スタンダード
DB SQLサーバー2000 SP3A スタンダード
WEB ASP
でバッチ処理をストアードプログラムで組んでいま
す。(20本ぐらい)
(ストアード登録後)実行したところ実行スピードのパフォーマンスがあがりません。
アドバイスお願いします。
http://www.microsoft.com/japan/sql/techinfo/administration/2000/...
Microsoft SQL Server - 技術情報 - パフォーマンス カウンタについて
SQLサーバは、チューニング項目が少ないのですが、ストアドプロシージャのパフォーマンスの低下の原因として一般的に考えられる項目を挙げておきます。
1.TEMP表領域不足
2.移行時にインデックスが欠落している
3.REDOログ、RBS、ユーザ表領域を同一物理ディスク上に配置している
くらいでしょうか。
パフォーマンスカウンタで、I/Oバウンドの処理、CPUバウンドの処理いずれにボトルネックが存在しているか分かれば、もう少し突っ込んで調べられそうです。
$B%5%s!&%^%$%/%m%7%9%F%`%:(B
RAID5を組んでいても理屈は同じで、1組のRAIDディスク群を1台の物理ディスクとして考えてください。コントロールパネルの「管理ツール」⇒「コンピュータの管理」⇒「ディスクの管理」で見たときに、RAIDディスク群も、1台のHDDとして見えます。
シビアな世界になりますが、DBを構成する場合の物理ディスクを分離させる優先順位は、ユーザ表領域に対して、
1.REDOログ、アーカイブログ
2.ロールバックセグメント
3.TEMP表領域
4.システム表領域
に、なるかと思います。
REDOログは、全てのトランザクションにおいて書き込みが発生するため、RBSは更新系トランザクションにおいて書き込みが発生するため、優先順位が高くなります。
ただ、お話から察するに、OLD構成に比べて明らかにパフォーマンスが落ちているようなので、ディスク構成より、もっと大きなボトルネックがありそうに思います。
いま、NT機とWIN2003機の検証をしているため、
DB領域をすべてひとつのドライブ(F:)(RAID5)に
データーベースファイルその他全部を振っています。
御指摘のとおり、1から4の別別の物理ドライブに振ってみます。
http://www.sqlpassj.org/dbe/kaihatsu/01.aspx
SQL Server ユーザーグループ > 特集!DBバイリンガル > 開発者必見Tips
物理的なディスク上のマッピングよりも、インデックスやメモリ確保のほうが影響は大きいと思います。
旧DBでは存在していたインデックスが、新DB移行時に落ちてしまっているとかいう可能性はないですか?
まずは、ストアドの実行状況をクエリアナライザで分析してみるべきだと思います。
また、SqlServerプロセスに割り当てるメモリを増やしてみてはどうでしょうか。
プロセスが自動で確保か、固定的に決まった分を割り当てるか設定できます。
ここで大きめの値を割り当てて見てはいかがでしょう。
(大きすぎる値を割り当てようとすると、メモリが確保できませんでしたというようなエラーがイベントログに書かれますが、サービス自体は動きます)
後は、たとえばDBサーバ⇔WEBサーバ間のネットワーク回線がボトルネックになっている可能性はないでしょうか?ちょっとこれはナイかな?と思いつつ一応書いて見ます。
http://www.hatena.ne.jp/1121859058#
人力検索はてな - サーバーリプレースをしています。 OLD OS WIN NT4.0SP5 スタンダード DB SQLサーバー7.0 スタンダード WEB ASP NEW OS WIN WIN2003 SP1 スタンダード DB SQLサ..
URLはダミーです。
RAIDはハードウエアRAIDですか?もしソフトウエアRAIDならミラーのほうがずっと速いですよ。それと、可能ならシステムとデータのディスクを分けてパラ書きさせたほうが速くなると思います。
RAID5構成になってるのですが、その場合、DISK構成等をどう考慮すればよいですか。