我目前是一位開發Java/DB2後端的Web應用程序的初級開發人員,並且我有一些SQL查詢運行速度很慢。目前的數據庫沒有經過優化,所以肯定有改進的餘地。唯一的問題是我沒有這方面的經驗,沒有人可以幫助我。優化選擇基於多個WHERE條件的查詢
SomeTableName
MyPkey
ColOne
ColTwo
ColThree
ColFour
ColFive
我試圖找出如何優化數據庫查詢這樣的:
SELECT * FROM SomeTableName WHERE ColOne = 'some value'
SELECT * FROM SomeTableName WHERE ColOne = 'some value' AND ColTwo = 'another'
SELECT * FROM SomeTableName WHERE ColFive = 11 AND ColThree = 'hello world'
SELECT * FROM SomeTableName WHERE ColOne = 'hi' AND ColTwo = 'val1' AND ColThree = 'val2' AND ColFour = 'val3' AND ColFive = 'val4'
我試圖描繪,則SELECT
語句具有WHERE
條件有不同的列組合和值,我不知道如何優化這樣的查詢。
有什麼建議嗎?
編輯:我不確定DB2是否添加了自己的優化,但肯定沒有任何列上的索引設置。
您應該看看的第一個地方是表定義,儘管我對Java或DB2瞭解不多,所以我無法幫助您瞭解具體情況。在大多數sql情況下,通過確保有適當的索引可以大大提高這樣的查詢。 – Henry 2011-05-01 22:50:07
該數據庫沒有任何索引。我以前想過創建一個,但不知道如何設置它(也就是說,我應該爲每列創建一個索引還是應該在一個索引中創建多個列) – 2011-05-01 22:52:33
您幾乎可以做最簡單的事情一個DB。如果它們運行緩慢,則應該在表中添加索引。沒有他們,你每次都在進行全表掃描。 – 2011-05-01 22:57:23