2011-01-12 15 views
15

ध्यान में रखते हुए क्या NUMERIC/दशमलव परिशुद्धता की एसक्यूएल सर्वर 2008 R2 भंडारण के बारे में MSDN राज्यों।एसक्यूएल सर्वर NUMERIC/दशमलव परिशुद्धता बनाम भंडारण

1 9 के प्रेसिजन 5 बाइट्स
के 10 19 के लिए 9 बाइट्स

है प्रेसिजन है तो अगर मेरे व्यापार के मामले तार्किक 2 दशमलव स्थानों के साथ एक डेटा प्रकार और 5 अंकों की शुद्धता की आवश्यकता है यह कोई वास्तविक प्रदर्शन या भंडारण अंतर अगर मैं के रूप में NUMERIC इसे परिभाषित करता है (5, 2) या NUMERIC (9, 2)

एक मैं जानबूझकर अनदेखी कर रहा हूँ पर विचार निहित जांच बाधा के रूप में मैं सबसे अधिक संभावना स्तंभ वास्तविक अनुमत श्रेणी सीमित पर एक वास्तविक जांच बाधा डाल चाहते हैं।

इस एक फर्क जब यह अनुक्रमित, क्वेरी प्रदर्शन या प्रणाली के किसी भी अन्य पहलू की बात आती है?

+0

NUMERIC यह सुनिश्चित नहीं करता है कि दशमलव स्थान डाला गया/अपडेट किया गया दशमलव स्थान मौजूद है। –

+0

योग() का उपयोग कर अतिप्रवाह के लिए परीक्षण। –

उत्तर

37

संख्यात्मक (5, 2) करने के लिए और 999.99 सहित संख्या अनुमति देता है। यदि आप उसमें 1000.0 डालने का प्रयास करते हैं, तो आपको अंकगणित अतिप्रवाह मिलेगा।

संख्यात्मक (9,2) के लिए और 9 999 999,99

ध्यान रखें कि यदि आप कभी भी इस मूल्य योग करने के लिए योजना बना रहे हैं, अतिरिक्त स्थान की अनुमति में भालू सहित संख्या की अनुमति देता है, अन्यथा आप एक अतिप्रवाह मिलता है या आप करेंगे ' एक स्पष्ट कलाकार करने की आवश्यकता होगी।

वे बाइट्स की एक ही नंबर का समय लग। चूंकि वे एक ही भंडारण आकार हैं, वे डेटा पेज में, स्मृति में, इंडेक्स में, नेटवर्क ट्रांसमिशन आदि में समान हैं।

इस कारण से मैं आमतौर पर काम करता हूं कि मुझे किस आकार संख्या की आवश्यकता है स्टोर (यदि संख्यात्मक का उपयोग कर रहे हैं), तो परिशुद्धता (और शायद स्केल) बढ़ाएं ताकि मैं उस बिंदु से नीचे हो जहां संग्रहण आकार बढ़ता है। तो अगर मुझे 4 दशमलव स्थानों के साथ 99 मिलियन तक स्टोर करने की आवश्यकता है, तो यह संख्यात्मक (12,4) होगा। उसी भंडारण के लिए, मेरे पास एक संख्यात्मक (1 9 6) हो सकता है और जब कुछ व्यवसायिक उपयोगकर्ता ने घोषणा की कि उन्हें वास्तव में वहां कुछ अरब स्टोर करने की आवश्यकता है, तो कुछ सुरक्षित स्थान दें।

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