簡體   English   中英

我應該如何改善查詢性能?

[英]How should I improve my query performance?

我創建了一個包含幾列的表。

MyTable

  • 列1-> RecordId(int)
  • 列2->標題(varchar)
  • 列3->簡稱(varchar)
  • 列4->(varchar)
  • 列5-> varchar

    ...

    ...

  • 列10-> varchar

我沒有將此表與其他任何表一起加入。 我表中有4行數據。

當我查詢特定RecordId的標題,簡稱時,查詢似乎太慢了。 加載頁面幾乎需要7秒鍾。

我沒有在表上使用任何索引。 您能否建議我如何改善表/查詢性能?

我正在從我的jsp建立數據庫連接,以便在列表框中顯示查詢結果。

我的代碼看起來像這樣-conn = DataObjectConnectionPool.getInstance()。getConnection(); prepStmt = conn.prepStmt(“從MyTable中選擇標題,短名稱,其中RecordId = 1”);

您應該在RecordId上定義一個主鍵

這將具有在該列上創建索引的副作用。

如果您的頁面在7秒內加載,並且表中只有4行數據,那么問題幾乎可以肯定是在DBMS中。

在具有4行的表上創建索引絕對沒有意義。 如果要在dbms中查看執行查詢的時間,請在運行查詢后從程序包緩存中獲取一些數據。

select num_exec_with_metrics, total_act_time,  pool_read_time
  from table(mon_get_pkg_cache_stmt(null,null,null,null))

該表函數中還有100個其他列,涉及不同類型的等待等。

基本上,您在代碼中使用以下sql查詢:

select title,shortname from MyTable where RecordId=1

從數據庫端,您可以通過在RecordID列上創建索引然后執行runstats ==>來加快查詢速度。

create index MyIndex on MyTable (RecordID) Compress yes Allow reverse scans;
runstats on table Mytable and indexes all shrlevel change;

暫無
暫無

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

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