sql >> データベース >  >> RDS >> Mysql

SQL SERVER 2016 –実行プランの比較

    新しいツールは新しい機能をもたらしますが、これらは製品に深く根付いているため、簡単に見逃してしまうことがあります。そして、SQLServer2016も例外ではありません。 CTPをインストールした後、パフォーマンスチューニングとクエリチューニングアクティビティを実行しているDBAに役立つこの追加機能を見て、嬉しい驚きを覚えました。

    では、私は何について話しているのでしょうか。 QA環境で何らかのテストを行っているシナリオを考えてみてください。本番シナリオのトラブルシューティングを行っているようですが、そのシナリオがテスト環境で非常にうまく機能していることがわかりました。 1か月も経たないうちに本番データベースからテストQAサーバーにデータを取得しましたが、それでも疑問に悩まされています–なぜこの違いがあるのですか?

    誰もが注目する次の要件は、同じクエリの本番環境とテスト環境の間で実行計画の比較を開始することです。運用サーバーでの実行計画の中には、ページまで実行されることがあり、視覚的に違いを見つけるのが難しいものがあります。

    SQL Server 2016 –計画の比較

    実稼働環境から実行プランがある場合は、先に進んでSQL Server 2016 Management Studioで開き、右クリックして次のオプションを取得します。

    興味深い追加であることがわかります。 「ショープランの比較」を選択する必要があります。次に、テスト環境から生成されたプランを選択します。これにより、以下に示すように、両方の実行計画が並べて表示されます。ノードの紫色を見てください。

    これは、両方のノードが同じであるが、一部のプロパティにいくつかの違いがあるという事実を表しています。右クリックして[プロパティ]タブを表示するのは私たちの責任です。

    ここで、各ノードプロパティを比較して、プラン間の区別がどこにあるかを見つけることができます。これは、新しいバージョンで追加されたすばらしい機能です。

    この機能は、ご使用の環境でのクエリ調整の演習で非常に役立ちます。そうは言っても、私が興味深いと思ったのは、ライブの「実際の実行プラン」を取得し、それを保存された.sqlplanファイルと比較しようとすると、次のようなエラーが発生することです。

    この機能を使用するかどうか、およびこの機能を使用したことがあるかどうかをお知らせください。この比較演算子に必要な拡張機能は何ですか。確かにあなたから学びたいです。


    1. ORA-00984:列はここでは許可されていません

    2. 時間部分を無視してDATETIMEとDATEを比較します

    3. 式インデックスの検索

    4. Oracleシーケンストリガーの作成