SQL Server2000でトランザクションログを圧縮(ほぼ切り捨て)しようと考えています。backup log db_name with no_log【改行】dbcc shrinkfile(’file_name’)でおこなう予定です。場合によっては圧縮後容量も指定します。この場合、DBのパフォーマンスになんらかの影響はあるのでしょうか?現在、重い処理の直後にreindexをし同様の重い処理が発生したときのパフォーマンスを高めています。このあたりに対して何らかの影響があるかを知りたいので、よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:kuippa No.1

回答回数1030ベストアンサー獲得回数13

ポイント70pt

http://www.sqlpassj.org/bbs/bbs_disp.aspx?forum_id=1&current_pag...

PASSJ(SQL Server ユーザーグループ) 休会のお知らせ

経験がある専門の方々に質問された方が確実だと思われます。

その上で、2000って殆ど触ったことがないので、思い違いがあるかもしれませんが・・・

トランザクションを切り捨てるだけであれば、データ領域がちっこくなるのでパフォーマンスが改善するかもしれません。重い処理とよばれるのがどのような物か判断しかねますが、この手のデータベースでは、過去に発行したSQLを覚えていて、そのうえで解釈していますので、indexを振りなおす行為が必ずしもパフォーマンスの改善につながるというわけではないのではないでしょうか? …って、キー情報が大幅に入れ替わるような処理であれば…別かもしれませんが。チューニングに関しては構成環境に依存する部分が多いので、なんとも。見当違いな事を言っていたらゴメンナサイ。

http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-NIPS...

SQL Server 2000でいってみよう: 紀伊國屋書店BookWeb

こちらは単なる本の紹介。

id:salvatore

すいません。質問の仕方が悪かったです。

トランザクションログファイルを削除することによってindexの再構築(reindex)の結果に変化があるのかを質問したかったです。。。

過去のSQLがトランザクションログに格納されているので、トランザクションログを切り捨てると、やはり、reindexに影響がありますよね…

重い処理は大きめのテーブルを複数結合しgroup byしている処理(複数)です。

SQLServerではオプティマイザがある程度チューニングしてくれるので、SQLの変更では

あまり期待した結果が得られず、ストアド化をおこなおうか迷っている段階でした。

現在は運用形態の関係でreindexで事足りているのですが、トランザクションログを圧縮することによって

reindexの効果が落ちるのではと悩んでいるところです。

2004/02/23 19:29:20
id:kuippa No.2

回答回数1030ベストアンサー獲得回数13

ポイント70pt

http://www.microsoft.com/japan/msdn/sqlserver/sql2000/statquery....

ご指定のページが見つかりません

引き続き調べてみました。

SQL Server2000で言われている統計情報というものが、トランザクションログとイコールであるとすれば、肝心のオプティマイザにも影響がでるかもしれません。

http://www.microsoft.com/japan/msdn/sqlserver/sql2000/itwforsql....

ご指定のページが見つかりません

技術情報。

http://support.microsoft.com/default.aspx?scid=kb;ja;304519

[FIX] CREATE UNIQUE CLUSTERED INDEX ... WITH DROP_EXISTING クエリで非クラスタ化インデックスを再構築する

関連不具合情報。

。。。恐らく、indexの貼り方や、トランザクションで悩んでいるぐらいなので、再考の余地もないと思うのですが、SQLについて幾つか確認されてはどうでしょうか。

・テーブルの結合順序。

・絞込みの解釈順序。

・ビューなどで予め抽出しておける部分はないか。

・集計処理や関数処理が入るタイミングは適切か

パラメータ渡しで抽出条件を渡せるのならば、

ストアドの方がSQL解釈が入らないので早いかもしれませんね。

・・・他の人のレスが入ってくれないと、ものすごく不安。。。

id:salvatore

たびたびありがとうございます。

現在、日々ARCServeでDATにバックアップを取っているのですが、トランザクションログが

肥大化しすぎて、DATに入りきらない状況です。

いろいろと考えたのですが、トランザクションログの切捨て+ストアド化がいいのかなと思ってます。

reindexは直近のクエリーを重点的に意識した再構築をしているようなので(憶測ですが)、

トランザクションログを切り捨てても、reindexによる期待している再構築の

パフォーマンスダウンはさほどないのでは?と考えました。

(運用では、同様のクエリーを投げることが多いため)

また、検索項目(Where句)が100近くありまして、各検索条件の演算子の関係で

全表検索がどうしても多く発生してしまいます。

(!=等)

このあたりがオプティマイザの負荷を高めて、クエリの実行というより

オプティマイザの負荷(実行計画の作成時間)が増加しているのではとおもいます。

統計による細かい調査はしていないのですが…

もしも、またなにかお気づきになりましたら、1ポイント送信等でお知らせいただければ

ポイントをお渡しいたしますので、よろしくお願いいたします。

2004/02/28 10:43:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません