2010-12-16 13 views
6

एसएसएम में SQL क्वेरी द्वारा लौटाई गई तालिका के बाइट्स में आकार कैसे प्राप्त किया जा सकता है?मैं SQL क्वेरी द्वारा लौटाई गई तालिका के बाइट्स में आकार कैसे प्राप्त कर सकता हूं?

+0

क्या लौट आया? कुछ एप्लिकेशन कोड, या एसएसएमएस, या कुछ और? –

+0

एसएसएमएस जो मैं उपयोग कर रहा हूं। – Matt

उत्तर

9

आप तालिका का आकार के लिए देख रहे , या तालिका में एक पंक्ति का आकार? उत्तरार्द्ध केवल तभी उपलब्ध होता है जब आपके सभी कॉलम निश्चित आकार के होते हैं, यानी nchar और nvarchar आदि

विभिन्न आकार के कॉलम के साथ आप प्रत्येक कॉलम की अधिकतम लंबाई का उपयोग कर सकते हैं, और इन्हें अधिकतम पंक्ति देने के लिए, आकार, लेकिन यह वास्तव में आपके असली पंक्ति आकार को सटीक रूप से प्रतिबिंबित नहीं करेगा।

select sum(max_length) 
from sys.columns 
where object_id = object_id('MyTable') 

तुम भी एक प्रश्न है कि किसी विशेष पंक्ति में प्रत्येक स्तंभ के लिए DATALENGTH रिटर्न केवल उस पंक्ति का कुल आकार पाने के लिए बना सकते हैं।

+3

... या आप इन मेट्रिक्स के लिए अधिक सटीक मान प्राप्त करने के लिए 'sys.dm_db_index_physical_stats' का उपयोग कर सकते हैं: http://msdn.microsoft.com/en-us/library/ms188917.aspx –

+0

धन्यवाद @ रीमस, यह एक नया है एक मेरे लिए – ProfK

+0

@RemusRusanu - हाँ, लेकिन क्या यह मुझे किसी भी कॉलम या तालिका की एक पंक्ति के अधिकतम आकार (बाइट्स में) दे सकता है? यदि हां, तो क्वेरी क्या होगी? –

6

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

शायद आप कुछ और ढूंढ रहे हैं?

डेटाबेस में किसी तालिका का आकार हमेशा अपने पृष्ठों की संख्या से निर्धारित किया जा सकता है, sys.allocation_units देखें। सहायक प्रक्रिया sp_spaceused आपके लिए यह जानकारी पढ़ और प्रारूपित कर सकती है।

+0

+1 "क्वेरी टेबल वापस नहीं लौटाते हैं, वे अच्छे स्पष्टीकरण और सीधे बिंदु पर परिणाम" – ProfK

+0

+1 लौटाते हैं। – yrushka

+0

मैं एक पंक्ति के अधिकतम आकार का अनुमान लगाने के बारे में सोच रहा था, फिर अपेक्षित पंक्तियों की केवल गिनती() प्राप्त कर रहा था। फिर, परिणाम सेट का अनुमान प्राप्त करने के लिए इन दो संख्याओं को गुणा करें। यकीन नहीं है कि यह इसके बारे में जाने का सही तरीका है। मैं पहले चरण में फंस गया हूँ। क्या आप मेरी मदद कर सकते हैं - https://stackoverflow.com/questions/22518384/how-do-i-get-the-maximum-memory-consumed-by-all-data-types-in-sql- सर्वर धन्यवाद। –

2

SSMS में ही, आप मेनू जो कुछ जानकारी

अन्यथा देता है में से एक से, "ग्राहक आंकड़े शामिल हैं" कर सकते हैं Remus 'जवाब के अनुसार

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

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