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

हमारे SQL सर्वर डेटाबेस में अनुक्रमणिका को कितनी बार फिर से बनाया जाना चाहिए?

एक आम सहमति है कि जैसे ही सूचकांक विखंडन 5 (कभी-कभी 10%) से अधिक तक पहुंच जाता है, आपको अपने सूचकांकों ("डीफ़्रेग्मेंट") को पुनर्गठित करना चाहिए, और जब यह 30% से अधिक हो जाए तो आपको उन्हें पूरी तरह से पुनर्निर्माण करना चाहिए (कम से कम यही संख्या है I' कई जगहों पर वकालत सुनी है).

मिशेल उफ़र्ड (उर्फ "एसक्यूएल फ़ूल") में एक स्वचालित अनुक्रमणिका डीफ़्रैग स्क्रिप्ट<है /ए> , जो उन सटीक सीमाओं का उपयोग यह तय करने के लिए करता है कि किसी अनुक्रमणिका को कब पुनर्व्यवस्थित या पुनर्निर्माण करना है।

यह भी देखें इंडेक्स के पुनर्निर्माण के लिए ब्रैड मैक्गी की युक्तियाँ अनुक्रमणिका पुनर्निर्माण से निपटने के तरीके के बारे में कुछ अच्छे विचारों और सुझावों के साथ।

मैं यहां इस स्क्रिप्ट का उपयोग करता हूं (याद नहीं कर सकता कि मुझे यह कब से मिला - जो कोई भी था:बहुत धन्यवाद! वास्तव में सहायक सामग्री) किसी दिए गए डेटाबेस में आपके सभी सूचकांकों पर सूचकांक विखंडन प्रदर्शित करने के लिए:

SELECT 
    t.NAME 'Table name',
    i.NAME 'Index name',
    ips.index_type_desc,
    ips.alloc_unit_type_desc,
    ips.index_depth,
    ips.index_level,
    ips.avg_fragmentation_in_percent,
    ips.fragment_count,
    ips.avg_fragment_size_in_pages,
    ips.page_count,
    ips.avg_page_space_used_in_percent,
    ips.record_count,
    ips.ghost_record_count,
    ips.Version_ghost_record_count,
    ips.min_record_size_in_bytes,
    ips.max_record_size_in_bytes,
    ips.avg_record_size_in_bytes,
    ips.forwarded_record_count
FROM 
    sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') ips
INNER JOIN  
    sys.tables t ON ips.OBJECT_ID = t.Object_ID
INNER JOIN  
    sys.indexes i ON ips.index_id = i.index_id AND ips.OBJECT_ID = i.object_id
WHERE
    AVG_FRAGMENTATION_IN_PERCENT > 0.0
ORDER BY
    AVG_FRAGMENTATION_IN_PERCENT, fragment_count
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में संग्रहीत कार्यविधि से csv आउटपुट फ़ाइल कैसे तैयार करें?

  2. टीएसक्यूएल में किसी तारीख से कैलेंडर तिमाही कैसे प्राप्त करें

  3. SQL सर्वर में डेटाटाइम फ़िल्टरिंग के लिए प्रदर्शन में सुधार कैसे करें?

  4. SQL सर्वर 2016 अस्थायी तालिका क्वेरी योजना व्यवहार

  5. किसी मौजूदा तालिका में डायनामिक कॉलम कैसे जोड़ें