ユーザーによるフル テーブル スキャンの実行を防止することにより、不適切なクエリーからシステムを保護するとします。例えば、会社のコール センターが、非常に大きな通信履歴テーブルに通信に関する詳細を記録している場合、この特定のテーブルに対して、ユーザーがフル テーブル スキャンを実行できないように指定できます。
- 編集するルールセットを選択します。
- ワークロード管理ポートレットとワークロード管理ビューを開きます。
- 対象システム リストからPROD1を選択します。
- ローカルの作業中セクションで、ルールセット名BadQueriesをクリックします。
- フィルタを作成します。
- ルールセット ツールバーから、フィルタをクリックします。
- フィルタの横にあるをクリックします。
- フィルタの名前を入力します。この場合は「Full Table Scan」です。
- Save(保存)をクリックします。
- フィルタに分類基準を追加して、CallHistoryTableテーブルに対するフル テーブル スキャンの実行を試みるクエリーに適用します。
- 分類タブをクリックします。
- 分類基準の追加リストからターゲットを選択します。
- Add(追加)をクリックします。ターゲット基準の編集ダイアログ ボックスが表示されます。
- ターゲット タイプ リストからテーブルを選択します。
- データベース リストで、通信履歴テーブル(履歴)を含むデータベースを選択します。
- テーブルで、フル テーブル スキャンを防止するテーブルの名前を入力します(CallHistoryTable)。
- 含めるをクリックします。テーブルは、含めるの下の選択済みリストにHistory.CallHistoryTableという名前で表示されます。
- 選択済みリストで、History.CallHistoryTableの横にあるをクリックします。基準の編集ダイアログ ボックスが表示されます。
- 基準のフル テーブル スキャンを選択し、含めるをクリックして、OKをクリックします。
- OKをクリックします。
- Save(保存)をクリックします。
- ルールセットをアクティブ化します。
- ワークロード管理ビューに戻ります。
- BadQueries ルールセットで、をクリックし、アクティブ状態を選択します。
- (オプション)指定した基準に従って拒否されたクエリーを確認します。
- ワークロード モニター ポートレットを開きます。
- ポートレット フレームのをクリックして、設定を選択します。
- Systems(システム) タブをクリックします。
- Systems(システム) リストからPROD1を選択します。
- OKをクリックします。
- 動的パイプ ビューで、システム フィルタのリクエスト ステータス アイコンの下の数字をクリックします。
- サマリー テーブルを確認し、このフィルタによって拒否されたクエリーを特定します。理由列には、ルール名「フル テーブル スキャン」が含まれます。