2011-04-12 50 views
3

在SQL中使用不同的命令是不是很好的做法?獨特的命令有什麼缺點嗎?使用不同的命令

+6

使用_select_命令是否有任何缺點?如果你需要它,使用它。 – 2011-04-12 19:43:41

+0

那麼如果你相信CJ Date有什麼要說的話,你應該總是爲了正確而應用它,但是他似乎並不喜歡SQL ...... – 2011-04-12 22:07:17

回答

10

它完全取決於您的使用案例DISTINCT在某些情況下很有用,但可能會被過度使用。

缺點主要是增加查詢引擎執行排序的負載(因爲它需要將結果集與自身進行比較以刪除重複項),並且它可以用來掩蓋數據中的問題 - 如果您正在重複您的源數據可能存在問題。

該命令本身並非天生好或壞。你可以使用螺絲刀敲擊指甲,但這並不意味着這是個好主意,或者螺絲刀在任何情況下都不好。

1

它是語言的一部分,所以應該使用。

有些情況下使用DISTINCT可能會導致表掃描,否則不會發生。

您將需要測試每個自己的用例,以查看是否會產生影響並在影響不可接受時找到解決方法。

0

如果您希望確保結果不同於SQL計算機上SQL服務器內部的結果,請使用它。如果您不介意將額外結果發送給客戶端並在那裏執行工作(以減少服務器負載),那麼請執行此操作。這取決於您的性能要求和數據庫的特性。

例如,如果明顯會減少結果集的可能性非常小,並且您沒有將索引列設置爲正確的列以使其更快,並且您需要減少SQL Server負載,並且您有備用週期客戶端,並且很容易確保客戶端的獨特性 - 那麼您可能需要這樣做。

這是很多ifs,ands和mights。如果你不知道 - 就使用它。

5

如果你需要經常使用它來獲得正確的輸出,那麼你有一個設計或JOIN問題

這是完全合法的使用說明。

雖然這是一種聚合:相當於所有輸出列上的GROUP BY。所以這是一個額外的步驟是查詢處理

相關問題