2013-03-06 15 views
0

你能幫我理解什麼是獨特的複雜SQL請求和幾個簡單的SQL請求之間的最佳解決方案,並在我的代碼中進行合併?獨特的複雜SQL請求與幾個簡單的SQL請求合併在我的代碼中?

  • 讓我說我在工作機會網站工作。工作機會由能力構成。每個能力都列在一個感興趣的領域。例如,一個能力可能是C#,他的興趣領域是IT。播音員可以創建新的工作機會,並選擇C#作爲工作所需的能力。

  • 另一方面,用戶選擇兩個,三個或更多的興趣領域。是的,我們的用戶不選擇他們的能力,但他們感興趣的領域。免得說我的用戶xxx選擇三個感興趣的區域。

在他的主頁上,我想按日期顯示這3個地區訂單的新工作機會名單。我應該在我的代碼中做什麼。

  1. 具有獨特的複雜SQL請求,對能力和我的用戶的關注興趣和地區區域工作機會加入,我對我的用戶

  2. 一個更簡單的SQL WHERE子句用戶表請求一個電話3次獲得3個工作機會名單,加入我的興趣領域的WHERE子句的能力和興趣領域,然後我將我的三個名單合併到我的代碼中。

,如果我需要訂購的工作機會,我的最新名單,但突出或工作機會,可能是在幾個感興趣的優先領域是什麼。

編輯

我有一個數據庫的要求:我需要用存儲過程僅

+0

還有第三種可能性,你可以把三個感興趣的領域作爲CTE來處理,並在sql中完成所有這些。鑑於您始終需要所有數據,因此一個請求就是「最佳」解決方案。 – 2013-03-06 09:23:40

+0

我不是SQL管理員。我以前一直在使用平面文件。什麼是CTE? (來自http://msdn.microsoft.com/en-us/library/ms190766(v=sql.105).aspx) – 2013-03-06 09:28:33

+0

是的,這是一個CTE,隨着更高版本的SQL Server,你可以創建一個客戶端和把它作爲論據。解決如何將數組傳遞給SP問題。 – 2013-03-06 15:51:14

回答

1

一個複雜的查詢僅僅是在所有情況下,99%要好得多。

但是,如果您需要經常處理數據,並且始終不需要最新的數據,那麼您當然可以在代碼中重新實現數據庫邏輯並獲得更好的性能。但是,如果您經常使用數據非常,並且您在此期間可以忽略任何更改,那麼這隻會起作用。請記住,通過適當的索引和優化來實現所有的連接邏輯是非常有用的工作。我會建議,這是不值得的努力。