जब तक आप एक ऐसा एप्लिकेशन नहीं लिख रहे हैं जिसे आप एक तथ्य के लिए जानते हैं, पोर्टेबल होने की आवश्यकता होगी या आप केवल काफी बुनियादी जानकारी चाहते हैं, तो मैं शुरू करने के लिए मालिकाना SQL सर्वर सिस्टम दृश्यों का उपयोग करने के लिए डिफ़ॉल्ट हूं।
Information_Schema
दृश्य केवल वे ऑब्जेक्ट दिखाते हैं जो SQL-92 मानक के साथ संगत हैं। इसका मतलब यह है कि इंडेक्स जैसी बुनियादी संरचनाओं के लिए भी कोई सूचना स्कीमा दृश्य नहीं है (इन्हें मानक में परिभाषित नहीं किया गया है और कार्यान्वयन विवरण के रूप में छोड़ दिया गया है।) किसी भी SQL सर्वर स्वामित्व सुविधाओं को अकेले छोड़ दें।
इसके अतिरिक्त यह पोर्टेबिलिटी के लिए काफी रामबाण नहीं है जिसे कोई मान सकता है। कार्यान्वयन अभी भी सिस्टम के बीच भिन्न होते हैं। Oracle इसे "बॉक्स से बाहर" बिल्कुल भी लागू नहीं करता है और MySql डॉक्स कहते हैं:
<ब्लॉकक्वॉट>SQL सर्वर 2000 के उपयोगकर्ता (जो मानक का भी पालन करते हैं) एक मजबूत समानता देख सकते हैं। हालाँकि, MySQL ने कई कॉलम छोड़े हैं जो हमारे कार्यान्वयन के लिए प्रासंगिक नहीं हैं, और ऐसे कॉलम जोड़े हैं जो MySQL- विशिष्ट हैं। ऐसा ही एक स्तंभ INFORMATION_SCHEMA.TABLES तालिका में इंजन स्तंभ है।
यहां तक कि ब्रेड और बटर के लिए भी SQL कंस्ट्रक्शन जैसे कि विदेशी कुंजी Information_Schema
. को सीमित करती है दृश्य sys.
. की तुलना में काम करने के लिए नाटकीय रूप से कम कुशल हो सकते हैं दृश्य क्योंकि वे ऑब्जेक्ट आईडी को उजागर नहीं करते हैं जो कुशल पूछताछ की अनुमति देंगे।
जैसे प्रश्न देखें SQL क्वेरी 1 सेकंड से 11 मिनट तक धीमी गति से - क्यों? और निष्पादन योजनाएं।
INFORMATION_SCHEMA
sys