台灣最大程式設計社群網站
線上人數
1058
 
會員總數:245475
討論主題:189234
歡迎您免費加入會員
討論區列表 >> Oracle >> 怎麼樣可以讓效能比較好
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
怎麼樣可以讓效能比較好
價值 : 100 QP  點閱數:2146 回應數:7

樓主

Jenny_Ming
初學者
73 64
912 137
發送站內信

各位大大...我有一個段查詢語法,覺得自己這樣寫很糟,想請問各位大大有沒有什麼方式可以改...
因為我每個欄位都會用一個select語法查出來...且大概有十幾個欄位,每個都用join的好像效能會很差...
且希望最後可以產出一個表格,請各位大大幫幫忙...


搜尋相關Tags的文章: [ Oracle ] ,
本篇文章發表於2012-11-15 17:55
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

fantasy
捐贈 VP 給 fantasy 檢舉此回應
都同一個Table?若是的話就直接SELECT就好啦(如下)

SELECT A, B, C
FROM AAA;

這樣只要SELECT TABLE一次而已

而您提的範例則是要SELECT TABLE 3次,當然慢...
本篇文章回覆於2012-11-19 15:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Jenny_Ming
檢舉此回應
丫...不好意思...它是不同table...我忘了改名稱...
本篇文章回覆於2012-12-10 14:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

vincent
檢舉此回應
三個表之間 欄位與欄位之間有關聯嗎
本篇文章回覆於2013-07-29 09:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Jenny_Ming
檢舉此回應
沒有耶!!
本篇文章回覆於2013-08-08 14:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

明天
檢舉此回應
如果您這3個表都是大表(資料很多) 因為您沒有限制條件 這樣是狄卡爾乘積
不可能快! 您可以看執行計畫
應該是scan full (全表掃描)
所以您每個表都應該要有限制條件 且索引也要建立
這樣才會快 不知這樣您懂不懂我的意思 !
本篇文章回覆於2013-12-18 23:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

明天
檢舉此回應
例如:
select a.a, b.b, c.c
from (select a from AAA a where /*a.a >='1' and a.a <='2z' 這邊限制條件*/ ) a
, (select b from BBB b /*where b.b >='1' and b.b <='2z' 這邊限制條件*/) b
, (select c from CCC c /*where c.c >='1' and c.c <='2z' 這邊限制條件*/ ) c )
本篇文章回覆於2013-12-18 23:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

四百龍銀
檢舉此回應
您的需求確認無誤?
這樣查詢 若A有100筆
B有100筆
則查詢出來會有10000筆資料

當然會慢
若只是單純想要合併表格
建議使用join 作個別查詢較適當。
本篇文章回覆於2014-01-10 15:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.