1

I would like to receive help in enhancing the performance of my SQL query. The query is so simple, but it is taking quite sometime to execute, so I would like some tips on how I can enhance the query:

  SELECT
    *
  FROM
    SOME_DB_TABLE
  WHERE
    SUBSTRING(TIME, 1, 8)
  BETWEEN
    "20110101" AND "20111231"
  AND
    CONDITION_COL = "C"
  GROUP BY
    TIME
  ORDER BY
    TIME ASC
4

2 に答える 2

3

部分文字列関数がクエリの速度を低下させている可能性があります。

以下のようなものは機能しますか?

time >= "20110101" 
and time < "20120101"
于 2012-08-01T16:48:05.177 に答える
0

次のように時間列にインデックスを付ける必要があります。

CREATE INDEX some_index ON SOME_DB_TABLE (TIME)

これにより、この列の検索が高速になります。
また、本当にすべての列が必要ですか? 使用SELECT *

  • 悪い習慣
  • 重要でない列を使用すると実行時間がかかる
于 2012-08-01T16:38:49.563 に答える