2013-03-02 10 views

उत्तर

31

<>, के बराबर नहीं है यह यह "बराबर नहीं है" के रूप में !=

+0

यह सच है कि वे, कार्यात्मक रूप से वही हैं। हालांकि, एसक्यूएल अनुकूलक उनका उपयोग कैसे करता है बहुत अलग है। = /! = को सही/गलत के रूप में मूल्यांकन किया जाता है जबकि <> का अर्थ है कि इंजन को देखना और देखना है कि क्या मान अधिक से अधिक या उससे अधिक है, जिसका मतलब अधिक प्रदर्शन ओवरहेड है। महंगे प्रश्न लिखने पर विचार करने के लिए बस कुछ। –

+12

मुझे विश्वास नहीं है कि कथन सही है, ऑपरेटर कार्यात्मक रूप से समकक्ष हैं, <>< and > का संयोजन नहीं है, यह अपने स्वयं के दायरे में एक विशिष्ट ऑपरेटर है, बराबर नहीं है। ऑप्टिमाइज़र की देखभाल क्यों होगी यदि यह मूल्य से अधिक या कम थी? यह सब जांचना है कि यह किसी चीज़ के बराबर नहीं है। – steoleary

+3

मैंने इसे कई संग्रहीत प्रक्रियाओं में साबित कर दिया है जो हमारे पास है। यह सब टेबल पर मौजूद इंडेक्स पर निर्भर करता है। जब आप <> का उपयोग करते हैं, तो मेरा मानना ​​है कि इंजन स्कैन/उन सभी मानों को खोजता है जो उससे अधिक या उससे कम हैं। जब हम उपयोग करते हैं! =, यह केवल उन सभी मानों के लिए जाता है जो आपके द्वारा परिभाषित किए गए बराबर नहीं होते हैं। हमने यहां कई प्रक्रियाओं पर 30 मिनट से 3 मिनट तक प्रदर्शन लाभ देखा है। दोबारा, हर किसी के वातावरण/इंडेक्स अलग हैं, लेकिन हम अनुक्रमित कॉलम पर <> ऑपरेटरों का उपयोग करने से बचने की कोशिश करते हैं क्योंकि वे SARGable नहीं हैं। देखें: http://www.sql-server-pro.com/sql-where-clause-optimization.html –

7

ही है। आपके द्वारा उपयोग किए जा रहे डेटाबेस के लिए ऑपरेटरों की सूची देखें, और उचित अनुभाग (आमतौर पर "तुलना ऑपरेटर") ढूंढें। उदाहरण के लिए:

4

यह not equals ऑपरेटर है। उपयोग:

select * 
from table 
where foo <> 0 
2

यह बराबर नहीं ऑपरेटर है, लेकिन मैं अपने उत्तर पोस्ट करने के लिए, क्योंकि मैं अभी तक काफी वर्ण दर्ज नहीं किया है वर्बोज़ होना करने के लिए जा रहा हूँ।

1

<> का मतलब नहीं बराबर ही != रूप

0

जांच करें कि क्या दो ऑपरेंड के मूल्यों के बराबर या नहीं कर रहे हैं, अगर मान बराबर तो हालत सच हो जाता है नहीं कर रहे हैं। (एक <> बी) या (ए! = बी) सच है।

संबंधित मुद्दे