データベースのパフォーマンス最適化の領域では、ウィンドウ関数を含む SQL クエリには特有の課題が存在します。この記事では、高度な SQL 最適化ツールである PawSQL が、インテリジェントなインデックス推奨を通じてそのようなクエリのパフォーマンスを大幅に向上させる方法について説明します。このアプローチのプロセスと利点を説明するために、特定のケーススタディを検討します。
特定の日付における各顧客の最低注文金額を見つけることを目的とした次の SQL クエリについて考えてみましょう。
SELECT * FROM ( SELECT o.o_custkey, o.o_totalprice, RANK() OVER (PARTITION BY o.o_custkey ORDER BY o.o_totalprice) AS rn FROM orders AS o WHERE o.o_orderdate = '1996-06-20' ) AS A WHERE A.rn = 1
このクエリは簡単そうに見えますが、特に大規模なデータセットの場合、パフォーマンスの問題を引き起こす可能性があります。 PawSQL がこれらの課題にどのように対処するかを見てみましょう。
クエリを分析した後、PawSQL は次の最適化を提案しました。
新しいインデックスの作成
CREATE INDEX PAWSQL_IDX1878194728 ON public.orders(o_orderdate, o_custkey, o_totalprice);
そして PawSQL の出力は:
となります。パフォーマンス検証は:
です。PawSQL の推奨事項により、クエリ パフォーマンスが 5181.55% という大幅な向上につながりました。この大幅な機能強化は、いくつかの要因によるものです。
新しく作成されたインデックス PAWSQL_IDX1878194728 は、クエリの要件に合わせて調整されています。
インデックス構造は本質的に必要な並べ替え順序を提供するため、クエリの実行中に追加の並べ替え操作を行う必要がなくなります。
必要な列をすべて含めることで、新しいインデックスはカバーインデックスとして機能します。これにより、データベースは必要なデータをすべてインデックスから直接取得できるようになり、I/O 操作が大幅に削減されます。
実行計画を比較すると、最適化の影響がわかります。
最適化前:
最適化後:
このような最適化の利点を最大化するには、次のベスト プラクティスを考慮してください。
PawSQL は、複雑な SQL クエリ、特にウィンドウ関数を伴うクエリの最適化において、インテリジェントなインデックス推奨機能の力を実証します。正確に調整されたインデックスを作成することにより、クエリ実行時間の大幅な短縮が達成され、アプリケーションの応答性とリソース使用率の向上につながります。
PawSQL は、データベース パフォーマンスの自動化とインテリジェントな最適化の最前線にあります。 MySQL、PostgreSQL、Oracle などを含む幅広いデータベースをサポートする PawSQL は、包括的な SQL 最適化ソリューションを提供します。
参考: https://docs.pawsql.com
無料でお試しください: https://pawsql.com
以上がウィンドウ関数の高速化? PawSQL のインデックスマジックが明らかにの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。