4

Sybase ASEの専門家がいる場合、Sybaseが受信したすべてのクエリをトレースする方法があるかどうか疑問に思いました。

私は現在、起動から7時間後に奇妙な動作を表示し始めるプログラムを実行しています。問題を解決するために、現時点でSybaseが何をしているのかを知りたいと思います。

SybaseASE15.5を使用しています。そして、奇妙な理由で、私の監視サーバーが起動しません。

4

1 に答える 1

8

はい、 Sybaseが受信するすべてのクエリを追跡する方法はいくつかあります。

ただし、質問の2番目の部分を考えると、私が理解しているように、(1)クエリが何をしているのかを理解する(2)他のアクティブなspidのコンテキストでアクティブなspidを監視する必要があります...それでも不十分な場合次に、(3)サーバーを監視します。トレースしない、およびすべてのクエリ。したがって、私はそれに立ち入り、Sybaseで利用可能なトレース要素への応答を延期します。

ASEへの接続は、サーバープロセスIDまたはspidです。

  1. SETSHOWPLANONとSETNOEXECONを設定し、クエリを実行します。これにより、SQLが実際に何をしているかについての非常に優れた洞察が得られます。これは必須の要件であり、すべての開発者が精通し、テストする前に要求する必要があります。クエリが遅いと感じるときはいつでも、実行されているI / Oを常に確認してください:SET STATISTICSION。

  2. sp_who; sp_lock; そして、あなたのスパイがカチカチ音をたてたり、ハングしたり、ロックを待ったり、ブロックされたり、他のスパイがそれを保持しているのを見てください。これは、すべての開発者が常に使用する必要がある基本セットです。

  3. sp_sysmonは、(全体の)サーバーを監視します。これは2つの方法で使用できます。継続的な監視ツールとして使用できます。たとえば、サーバー構成の変更の基礎となる1時間の統計を取得します。スナップショットとして、例えば。プロセスが実行されているときと実行されていないときのサーバーの5分間のスナップショットを取得し、違いを調べます。通常、これは開発者ではなく経験豊富なDBA向けであり、sa_roleが必要です。

それはすべてオンラインとPDFの両方のマニュアルにあります。

7時間は非常に長い時間なので、カーソルなどを使用して、セットではなく単一の行を処理する必要があります。定期的な夜間のバッチジョブ(ダンプ、統計の更新、再編成)が7時間の時点で評価されているかどうかを確認します。それらのいくつかはテーブルロックを保持します。もちろん、サーバーがWindozeで実行されている場合、メモリリークなど、あらゆる種類の奇妙なことが標準的な料金になります。少なくとも毎週ボックスをバウンスします。

このような処理負荷の順序でトランザクションログとtempdbの使用状況に注意する必要があります。

于 2010-10-23T04:16:36.707 に答える