私は三つのフィールド持つテーブルrecords
ありますSQLタイムスタンプ範囲クエリを改善するには?
id - the row id
value - the row value
source - the source of the value
timestamp - the time when the row was inserted (should this be a unix timestamp or a datetime?)
をそして、私はこのようなクエリを実行したい:
SELECT timestamp, value FROM records WHERE timestamp >= a AND timestamp <= b
しかし数百万レコードを持つテーブルでは、このクエリは、超非効率的であるが!
私はDBMSとしてAzure SQL Serverを使用しています。これは最適化できますか?
もしあなたがそれを行うためのステップバイステップのガイドを提供することができますか(「小さな」ステップをスキップしないでください)?インデックスを作成し、クエリステートメントを再設計し、テーブルを再設計します(パーティション化?)...
ありがとう!
'records(timestamp、value)'にインデックスが必要なようです。 –
このクエリでは、どのタイプのインデックスが最適ですか? – PedroD
インデックスについていくつかの調査をしてください。個々の小さなステップを尋ねることによって、クエリのチューニングに関する調査をまだ行っていないことが示されます。 – dfundako