簡體   English   中英

SELECT查詢的性能 - Oracle / JDBC

[英]Performance of SELECT query- Oracle/JDBC

我在系統中有一個現有的查詢,它是一個簡單的選擇查詢,如下所示:

SELECT <COLUMN_X>, <COLUMN_Y>, <COLUMN_Z> FROM TABLE <WHATEVER>

隨着時間的推移, <WHATEVER>在記錄方面正在增長。 有沒有辦法改善這里的表現? 開發人員正在使用Statement接口。 我相信PreparedStatement在這里不會有用,因為查詢只執行一次。

還有什么可以做的嗎? 其中一列是主鍵,其他列是VARCHAR(如果信息有幫助)

你查詢有任何謂詞嗎? 或者你總是從表中返回所有行?

如果總是返回所有行,則column_x, column_y, column_z上的覆蓋索引將允許Oracle僅掃描索引而不是執行表掃描。 查詢仍然會隨着時間的推移而減慢,但索引的增長速度應該比表快。

如果要返回行的子集,則從性能角度看,可能還有其他索引更有利。

在SQL查詢調優之外是否可以進行任何優化? 如果是,這里有一些建議:

  • 嘗試將表放入內存(如MySQL中的MEMORY存儲引擎)或DB中的任何其他優化
  • 在java中緩存ResultSet。 僅在表內容更改時再次查詢。 如果表只有插入而沒有更新或刪除(一廂情願),那么您可以使用SELECT COUNT(*)FROM table。 如果返回的行與上一次不同,則僅在需要時觸發原始查詢並更新緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM