Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर (T-SQL) में संपीड़न के साथ एक तालिका बनाएँ

जब आप SQL सर्वर में एक तालिका बनाते हैं, तो आपके पास डेटा संपीड़न का उपयोग करने का विकल्प होता है।

डेटा संपीड़न डेटाबेस के आकार को कम करने में मदद करता है। यह कम पृष्ठों में डेटा संग्रहीत होने के कारण I/O गहन कार्यभार के प्रदर्शन को बेहतर बनाने में भी मदद कर सकता है, इसलिए डिस्क से पढ़ने के लिए आवश्यक पृष्ठों की संख्या को कम करता है।

ऐसा करने के लिए, DATA_COMPRESSION . का उपयोग करें तालिका बनाते समय विकल्प।

उदाहरण

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।

CREATE TABLE Movies (
    MovieId int IDENTITY(1,1) PRIMARY KEY NOT NULL,
    MovieName nvarchar(200)
    )
WITH (DATA_COMPRESSION = ROW);

इस मामले में मैं पंक्ति संपीड़न का उपयोग करता हूं।

निम्नलिखित पृष्ठ संपीड़न का उपयोग करता है।

CREATE TABLE Movies (
    MovieId int IDENTITY(1,1) PRIMARY KEY NOT NULL,
    MovieName nvarchar(200)
    )
WITH (DATA_COMPRESSION = PAGE);

संपीड़न कैसे निकालें

आप ALTER TABLE . का उपयोग करके कंप्रेशन को हटा सकते हैं NONE . का उपयोग करते हुए तालिका के पुनर्निर्माण के लिए कथन संपीड़न प्रकार के रूप में।

ALTER TABLE MOVIES
REBUILD WITH (DATA_COMPRESSION = NONE);

कॉलमस्टोर टेबल

यदि आप कॉलमस्टोर टेबल (क्लस्टर कॉलमस्टोर इंडेक्स के साथ संग्रहीत टेबल) का उपयोग कर रहे हैं, तो उपरोक्त संपीड़न प्रकार लागू नहीं होते हैं। इस मामले में, आपके संपीड़न विकल्प COLUMNSTORE . हैं और COLUMNSTORE_ARCHIVE

संपीड़न परिणाम भिन्न हो सकते हैं

आपको मिलने वाली संपीड़न की मात्रा डेटा और संपीड़न के प्रकार पर निर्भर करेगी।

ROW संपीड़न, उदाहरण के लिए, कॉलम मानों से अनावश्यक बाइट्स को चर लंबाई प्रारूप में संग्रहीत करके हटा देता है। PAGE दूसरी ओर, संपीड़न, प्रति पृष्ठ केवल एक बार दोहराए जाने वाले मानों को संग्रहीत करता है, और पृष्ठ के भीतर संबंधित स्तंभों से सूचक सेट करता है।

कभी-कभी आप पाते हैं कि किसी वस्तु को संपीड़ित करने से उसका आकार हमेशा कम नहीं होता है, और कुछ मामलों में वास्तव में वृद्धि हो सकती है इसका आकार।

ऐसा तब हो सकता है जब आपके कॉलम ऐसे डेटा प्रकार का उपयोग करते हैं जो संपीड़न से लाभान्वित नहीं होता है।

इसके अलावा, पंक्ति संपीड़न मेटाडेटा ओवरहेड को कम करता है, लेकिन कुछ मामलों में ओवरहेड पुराने स्टोरेज प्रारूप से अधिक हो सकता है।

यदि आपके डेटा को उसके डेटा प्रकार के कारण संपीड़न से कोई लाभ नहीं मिलता है, तो हो सकता है कि ओवरहेड कम होने के बजाय भंडारण आवश्यकताओं में वृद्धि का कारण बने।

लेकिन संपीड़न आकार में बदलाव वास्तविक डेटा पर भी निर्भर करेगा। उदाहरण के लिए, यदि आपके पास char(10) . है स्तंभ, संपीड़न किसी भी अनुगामी पैडिंग वर्ण को हटा देगा। यदि आपके पास अनुगामी पैडिंग वर्णों के साथ बहुत सी पंक्तियाँ हैं, तो आपको एक बेहतर परिणाम प्राप्त करना चाहिए यदि आपके पास अनुगामी पैडिंग वर्णों वाली कोई (या कुछ) पंक्तियाँ नहीं हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्टॉप वर्ड सूची खाली होने पर भी स्टॉप वर्ड शामिल होने पर पूर्ण टेक्स्ट सर्च काम नहीं करता है

  2. टीएसक्यूएल में नल कैरेक्टर शाब्दिक क्या है?

  3. SQL में कॉलम पर मानों के सभी संभावित संयोजन लौटाएं

  4. एक क्लिक में कई SQL सर्वर से कैसे जुड़ें (पंजीकृत सर्वर समूह) - SQL सर्वर / TSQL ट्यूटोरियल भाग 5

  5. SQL सर्वर में JSON_QUERY () बनाम JSON_VALUE ():क्या अंतर है?