2010-03-16 69 views
0

我有一個50k關鍵字的表格,我正在根據計數機制爲這些關鍵字提供自動完成功能。但仍然得到關鍵字需要時間..oracle數據庫分區的最佳方式?

在將數據庫分區具有快速檢索需要做什麼樣的方式....

幫我PLZ .....

+0

您是否檢查過數據庫是您的實際瓶頸?你有適當的索引嗎?如果您輸入的第一個字母是平均2000個匹配該字母的關鍵字,那麼您是否考慮過在50k時? – jva 2010-03-16 13:26:55

回答

3

與表50k行非常小。應該沒有必要(和受益)對其進行分區。

您需要查看查詢執行計劃和您的算法。也許你只需要一個索引。或者是內存中的緩存。

1

的一些想法:

  • 50K關鍵字本來就不大的表,分區也無濟於事,智能索引可能。
  • 如果數據在數據庫中,那麼您可能最適合將適當的數據結構加載到內存中,因爲每次按鍵都會導致與數據庫進行通信,因此您的自動完成可能會很慢且無響應。
+0

作爲一部分,我想增加關鍵字爲50k到500k什麼分區給快速resoponse .... 謝謝, Murali – murali 2010-03-16 06:54:30

+0

@murali:在這種情況下,你應該想出一個算法,只查詢數據庫在輸入1個(或2個或更多)字符後,因此減少了檢索所需的數據。但是,500k仍然不是一張大桌子,假設每個條目的內存平均爲20Bytes,你仍然'只'需要大約100MB如果您預取整個表格,則需要使用ram。 – lexu 2010-03-16 07:11:08

0

也許老表統計,優化器可以選擇錯誤的計劃。

從用戶嘗試用DBA角色
exec dbms_stats.gather_table_stats (ownname => 'YOUR_OWNER', tabname => 'YOUR_TABLE');
alter system flush shared_pool;

並再次獲得關鍵字的測試時間。

P.S.統計應定期收集。