Reddit पर इस प्रश्न को देखते हुए , मैंने क्वेरी को साफ़ करने के लिए कहा कि मुद्दा क्वेरी में कहाँ था। मैं पहले कॉमा का उपयोग करता हूं और WHERE 1=1
प्रश्नों को संशोधित करना आसान बनाता हूं, इसलिए मेरे प्रश्न आमतौर पर इस तरह समाप्त होते हैं:
SELECT
C.CompanyName
,O.ShippedDate
,OD.UnitPrice
,P.ProductName
FROM
Customers as C
INNER JOIN Orders as O ON C.CustomerID = O.CustomerID
INNER JOIN [Order Details] as OD ON O.OrderID = OD.OrderID
INNER JOIN Products as P ON P.ProductID = OD.ProductID
Where 1=1
-- AND O.ShippedDate Between '4/1/2008' And '4/30/2008'
And P.productname = 'TOFU'
Order By C.CompanyName
किसी ने मूल रूप से कहा कि 1 = 1 आम तौर पर प्रदर्शन के लिए आलसी और बुरा है ।
यह देखते हुए कि मैं "समय से पहले अनुकूलन" नहीं करना चाहता - मैं अच्छी प्रथाओं का पालन करना चाहता हूं। मैंने क्वेरी योजनाओं को पहले देखा है, लेकिन आम तौर पर केवल यह पता लगाने के लिए कि मैं अपने प्रश्नों को और तेज़ करने के लिए किन इंडेक्सों को जोड़ (या समायोजित) कर सकता हूं।
सवाल तो वास्तव में ... क्या Where 1=1
बुरा होने का कारण बनता है? और यदि हां, तो मैं कैसे बता सकता हूं?
माइनर एडिट: मैंने हमेशा 'ग्रहण' किया है और साथ ही साथ 1=1
इसे अनुकूलित किया जाएगा, या सबसे कम नगण्य होगा। कभी भी किसी मंत्र पर सवाल उठाने की जुर्रत नहीं करता, जैसे "गोटो के ईविल" या "प्रीमेच्योर ऑप्टिमाइज़ेशन ..." या अन्य ग्रहण किए गए तथ्य। यकीन नहीं था कि 1=1 AND
क्या वास्तविक रूप से क्वेरी योजनाओं को प्रभावित करेगा या नहीं। उप-क्षेत्रों में क्या है? CTE के? प्रक्रिया?
मैं अनुकूलन करने के लिए एक नहीं हूं, जब तक कि जरूरत न हो ... लेकिन अगर मैं कुछ ऐसा कर रहा हूं जो वास्तव में "बुरा" है, तो मैं उन प्रभावों को कम करना चाहूंगा या जहां लागू हो सकता हूं।