इस सप्ताह के पास शिखर सम्मेलन से पहले, और निश्चित रूप से SQL सर्वर 2016 के आसपास दर्जनों और दर्जनों घोषणाओं से पहले, मैंने सोचा था कि मैं कुछ समय के लिए सीटीपी में छिपी हुई एक सुविधा का एक विवरण साझा करूंगा, लेकिन माइक्रोसॉफ्ट के पास मौका नहीं है प्रचारित करना:सर्विस ब्रोकर कतारों के लिए अतिरिक्त रखरखाव संचालन उपलब्ध।
रेमुस रुसानु (@rusanu) ने इस पोस्ट में उन समस्याओं पर चर्चा की जो उच्च मात्रा में विखंडन के कारण कतारों का कारण बन सकती हैं:
- बड़ी कतारों से निपटना
वहां, उन्होंने बताया कि आप वास्तव में DBCC REINDEX
. का उपयोग कर सकते हैं आंतरिक तालिका के विरुद्ध, लेकिन आपको आंतरिक तालिका का नाम निर्धारित करना था, और DAC के माध्यम से कनेक्ट करना था। बिल्कुल सुविधाजनक नहीं है।
अब, लगभग छह साल बाद, यदि आपको लगता है कि आप उच्च भार के कारण विखंडन की समस्याओं का सामना कर रहे हैं, तो आप REORGANIZE
अनुक्रमणिका को बाध्य कर सकते हैं या REBUILD
सीधे कतार को संदर्भित करके कतार की आंतरिक तालिका के विरुद्ध संचालन:
ALTER QUEUE dbo.myQueue REORGANIZE; -- or ALTER QUEUE dbo.myQueue REBUILD;
आप कैसे जानते हैं कि कतार में आपके पास कितना विखंडन है? खैर, sys.dm_db_index_physical_stats
को पास करने के लिए एक अनुमेय वस्तु के रूप में कतारें जोड़ दी गई हैं , भी:
SELECT * FROM sys.dm_db_index_physical_stats ( DB_ID(), OBJECT_ID(N'dbo.QueryNotificationErrorsQueue'), -1, 0, 'SAMPLED' );
और आप एक नियमित तालिका के समान पूछताछ के समान आउटपुट प्राप्त करते हैं।
इसके अतिरिक्त, आप क्यू को किसी अन्य फ़ाइल समूह में ले जा सकते हैं; यह ऑपरेशन नए फाइलग्रुप पर आंतरिक क्यू टेबल और उसके सभी इंडेक्स को फिर से बनाएगा:
ALTER QUEUE dbo.myQueue MOVE TO [MY_FILEGROUP];
इन नई क्षमताओं को सर्विस ब्रोकर समाधानों की अधिक मापनीयता की अनुमति देनी चाहिए।