मैं अपने डेटाबेस के आकार की गणना करने की कोशिश कर रहा हूं। मेरे पास 3 कॉलम (आईडी, int, money) वाली एक टेबल होगी, मेरे पास 26 मिलियन पंक्तियां होंगी जिनमें सभी कॉलम पर कब्जा होगा। मेरा डेटाबेस कितना बड़ा होगा? साथ ही, मैं सभी SQL सर्वर डेटा प्रकारों का आकार कहां पा सकता हूं?SQL सर्वर डेटा प्रकारों का आकार कहां खोजें
उत्तर
आपकी क्वेरी से नीचे का उपयोग कर सकते हैं:
SELECT * FROM sys.types
ऊपर क्वेरी के परिणाम के नीचे है:
name system_type_id user_type_id schema_id principal_id max_length precision scale collation_name is_nullable is_user_defined is_assembly_type default_object_id rule_object_id is_table_type
-------------------- -------------- ------------ --------- ------------ ---------- --------- ----- ----------------- ----------- --------------- ---------------- ----------------- -------------- -------------
image 34 34 4 NULL 16 0 0 NULL 1 0 0 0 0 0
text 35 35 4 NULL 16 0 0 Persian_100_CI_AI 1 0 0 0 0 0
uniqueidentifier 36 36 4 NULL 16 0 0 NULL 1 0 0 0 0 0
date 40 40 4 NULL 3 10 0 NULL 1 0 0 0 0 0
time 41 41 4 NULL 5 16 7 NULL 1 0 0 0 0 0
datetime2 42 42 4 NULL 8 27 7 NULL 1 0 0 0 0 0
datetimeoffset 43 43 4 NULL 10 34 7 NULL 1 0 0 0 0 0
tinyint 48 48 4 NULL 1 3 0 NULL 1 0 0 0 0 0
smallint 52 52 4 NULL 2 5 0 NULL 1 0 0 0 0 0
int 56 56 4 NULL 4 10 0 NULL 1 0 0 0 0 0
smalldatetime 58 58 4 NULL 4 16 0 NULL 1 0 0 0 0 0
real 59 59 4 NULL 4 24 0 NULL 1 0 0 0 0 0
money 60 60 4 NULL 8 19 4 NULL 1 0 0 0 0 0
datetime 61 61 4 NULL 8 23 3 NULL 1 0 0 0 0 0
float 62 62 4 NULL 8 53 0 NULL 1 0 0 0 0 0
sql_variant 98 98 4 NULL 8016 0 0 NULL 1 0 0 0 0 0
ntext 99 99 4 NULL 16 0 0 Persian_100_CI_AI 1 0 0 0 0 0
bit 104 104 4 NULL 1 1 0 NULL 1 0 0 0 0 0
decimal 106 106 4 NULL 17 38 38 NULL 1 0 0 0 0 0
numeric 108 108 4 NULL 17 38 38 NULL 1 0 0 0 0 0
smallmoney 122 122 4 NULL 4 10 4 NULL 1 0 0 0 0 0
bigint 127 127 4 NULL 8 19 0 NULL 1 0 0 0 0 0
hierarchyid 240 128 4 NULL 892 0 0 NULL 1 0 1 0 0 0
geometry 240 129 4 NULL -1 0 0 NULL 1 0 1 0 0 0
geography 240 130 4 NULL -1 0 0 NULL 1 0 1 0 0 0
varbinary 165 165 4 NULL 8000 0 0 NULL 1 0 0 0 0 0
varchar 167 167 4 NULL 8000 0 0 Persian_100_CI_AI 1 0 0 0 0 0
binary 173 173 4 NULL 8000 0 0 NULL 1 0 0 0 0 0
char 175 175 4 NULL 8000 0 0 Persian_100_CI_AI 1 0 0 0 0 0
timestamp 189 189 4 NULL 8 0 0 NULL 0 0 0 0 0 0
nvarchar 231 231 4 NULL 8000 0 0 Persian_100_CI_AI 1 0 0 0 0 0
nchar 239 239 4 NULL 8000 0 0 Persian_100_CI_AI 1 0 0 0 0 0
xml 241 241 4 NULL -1 0 0 NULL 1 0 0 0 0 0
sysname 231 256 4 NULL 256 0 0 Persian_100_CI_AI 0 0 0 0 0 0
CalculatedCreditInfo 243 257 9 NULL -1 0 0 NULL 0 1 0 0 0 1
udt_QoutaDetail 243 258 21 NULL -1 0 0 NULL 0 1 0 0 0 1
BeforeUpdate 243 259 22 NULL -1 0 0 NULL 0 1 0 0 0 1
udt_StoreInventory 243 260 26 NULL -1 0 0 NULL 0 1 0 0 0 1
udt_WKFHistory 243 261 32 NULL -1 0 0 NULL 0 1 0 0 0 1
IDTable 243 262 1 NULL -1 0 0 NULL
आप प्रत्येक डेटा प्रकार के आकार के लिए MAX_LENGTH उपयोग कर सकते हैं।
यह आकार नहीं दिखाता है। उदाहरण के लिए, एक्सएमएल रिक्त चर का आकार 5 है, जहां यह कहता है? –
आप इस उत्तर के लिए एक अच्छा पूरक (यदि कोई बेहतर विकल्प नहीं है) देख सकते हैं [यहां] (http://dba.stackexchange.com/questions/147296/where-to-find-the-size-of-sql- सर्वर -डेटा प्रकार/147315 # 147315) –
nvarchar 2 बाइट चौड़ा है। इसलिए sys.columns.max_length = 44. लेकिन वास्तविक लंबाई 22 है। डेटा प्रकार का वास्तविक आकार कहां दिखाया जाएगा? अधिकतम आकार उस प्रकार का कॉलम नहीं हो सकता है। – TamusJRoyce
http://msdn.microsoft.com/en-us/library/ms187752.aspx
Money : 8 bytes
int : 4 bytes
id - depends on what you mean.
+ अन्य पंक्ति ओवरहेड जैसे 'NULL_BITMAP' और स्टेटस बिट्स संभावित संस्करण पॉइंटर। –
यदि खंड में निर्दिष्ट तालिका में nvarchar है, तो यह क्वेरी आपको बताएगी कि उस कॉलम के लिए कितने अक्षर सही हैं!
यह पता लगाता है कि कॉलम "चौड़ा" है और अनिवार्य रूप से 2 से विभाजित होता है। केवल nvarchar से अधिक व्यापक।
SELECT c.name, (CASE WHEN LEFT(ts.name, 1) = 'n' AND ts.[precision] = 0 AND ts.[scale] = 0 THEN c.max_length/ts.[bytes] ELSE c.max_length END) AS [length]
FROM sys.columns AS c
INNER JOIN sys.tables AS t
ON t.object_id = c.object_ID
INNER JOIN
(
SELECT *, (CASE WHEN [bits] = -1 THEN -1 ELSE ([bits] + 7)/8 END) AS [bytes]
FROM (
SELECT *, (CASE WHEN max_length >= 256 THEN (CASE WHEN LEFT(name, 1) = 'n' AND [precision] = 0 AND [scale] = 0 THEN 16 ELSE 8 END) ELSE max_length END) AS [bits]
FROM sys.types AS iits
) AS its
) AS ts
ON ts.user_type_id = c.user_type_id
WHERE t.name LIKE 'tb_tablename' -- LIKE is case insensitive
बेशक
, तो आप सिर्फ 2 से sys.columns पर MAX_LENGTH विभाजित करते हैं, क्या आप जानते हैं स्तंभ कोई nvarchar है सकते हैं। टेबल स्कीमा को इस तरह से खोजने के लिए यह और अधिक है जो भविष्य में नए एसक्यूएल डेटा प्रकार पेश किए जाने के लिए बेहतर लगता है। और आप इसे अपग्रेड करना चुनते हैं। बहुत छोटा किनारा मामला।
अगर आपको कोई एज केस मिलता है तो बाइट्स और बिट्स गलत हैं तो कृपया इस उत्तर को संपादित और सही करें।
विवरण:
-- ([bits] + 7)/8 means round up
--
-- Proof:
-- o (1 bit + 7 = 8)/8 = 1 byte used
-- o ((8 + 8 + 1 = 17 bytes) + 7 = 24)/8 = 3 byes used
-- o ((8 + 8 + 7 = 23 bytes) + 7 = 30)/8 = 3.75 = integer division removes decimal = 3
SELECT *, (CASE WHEN [bits] = -1 THEN -1 ELSE ([bits] + 7)/8 END) AS [bytes]
FROM (
SELECT *, (CASE WHEN max_length >= 256 THEN (CASE WHEN LEFT(name, 1) = 'n' AND [precision] = 0 AND [scale] = 0 THEN 16 ELSE 8 END) ELSE max_length END) AS [bits]
FROM sys.types AS its
) AS ts
कोई जानता है कि एसक्यूएल सर्वर भंडार प्रत्येक डेटा प्रकार के लिए थोड़ा और बाइट आकार। या sys.columns आकार प्राप्त करने का एक बेहतर तरीका है, कृपया एक टिप्पणी छोड़ दो!
- 1. SQL सर्वर डेटाबेस आकार
- 2. SQL सर्वर भूगोल डेटा प्रकार
- 3. SQL सर्वर
- 4. SQL सर्वर का उपयोग डेटा स्रोत
- 5. SQL सर्वर
- 6. SQL सर्वर
- 7. SQL सर्वर
- 8. SQL सर्वर
- 9. SQL सर्वर
- 10. SQL सर्वर तालिका कॉलम का भौतिक आकार निर्धारित करें
- 11. SQL सर्वर में डेटा प्रकार 2 की शक्तियों के आकार होना चाहिए?
- 12. off_t प्रकार की पूरी परिभाषा कहां खोजें?
- 13. SQL सर्वर
- 14. मेरे SQL सर्वर 2008 में SQL प्रोफाइलर कहां है?
- 15. SQL सर्वर
- 16. VisualSVN सर्वर का संस्करण संख्या कैसे खोजें?
- 17. SQL सर्वर डेटाबेस में सबसे बड़ी ऑब्जेक्ट्स कैसे खोजें?
- 18. खोजें() बनाम कहां()। FirstOrDefault()
- 19. यूआई उदाहरण कहां खोजें
- 20. SQL सर्वर 2005 में VARBINARY फ़ील्ड का आकार
- 21. Sql सर्वर मिलान
- 22. SQL सर्वर 2008 SQL सर्वर कॉम्पैक्ट संस्करण में?
- 23. SynEdit - समुदाय कहां खोजें?
- 24. ActiveRecord डेटा प्रकारों के लिए प्रलेखन पृष्ठ कहां है?
- 25. SQL सर्वर
- 26. एसक्यूएल सर्वर क्वेरी परिणाम का आकार
- 27. SQL सर्वर
- 28. एंड्रॉइड क्रैश इतिहास कहां खोजें
- 29. SQL सर्वर
- 30. SQL सर्वर
शायद एक अच्छी शुरुआत: http://msdn.microsoft.com/en-us/library/ms175991.aspx –
आपको एहसास है कि आपको डीबी इंटर्नल्स के बारे में एक सटीक संख्या में पहुंचने के बारे में बहुत कुछ पता होना है? अपनी इच्छित सेटिंग्स के साथ डमी डेटा के साथ उस आकार की एक तालिका बनाना संभवतः संभव है, और उसके बाद आकार की जांच करें। सौ कम-स्तरीय चिंताओं हैं जो आवश्यक बाइट्स की संख्या से जोड़ या घटा सकते हैं। स्नैपशॉट अलगाव सक्षम होने पर – delnan