পটভূমি:
আমার কাছে ভিউয়ের একটি বিশাল সংখ্যার সাথে অসংখ্য ডেটাবেস এবং একটি অত্যন্ত সংখ্যক সিনওয়ানওয়াইম। উদাহরণস্বরূপ, একটি ডিবিতে 10 কেও বেশি ভিউ এবং 2+ মিলিয়ন সিনওয়াইম রয়েছে।
সাধারণ সমস্যা:
জড়িত প্রশ্নগুলি sys.objects
(এবং সাধারণভাবে সিস্টেম সারণী) ধীরে ধীরে থাকে। জড়িত জিজ্ঞাসা sys.synonyms
হিমবাহ। পারফরম্যান্সের উন্নতি করতে আমি কী করতে পারি তা ভাবছি।
নির্দিষ্ট উদাহরণ
এই কমান্ডটি তৃতীয় পক্ষের সরঞ্জাম দ্বারা চালিত হয়। এটি অ্যাপ্লিকেশন এবং এসএসএমএস উভয়ই ধীরে ধীরে:
exec sp_tables_rowset;2 NULL,NULL
আমার প্রশ্ন :
আমি কীভাবে এই রান দ্রুত করতে পারি?
আমি যা চেষ্টা করেছি :
যদি আমি SET STATISTICS IO ON
এই আউটপুটটি পাই:
(2201538 সারি প্রভাবিত)
সারণী 'sysobjrdb'। স্ক্যান কাউন্ট 1, লজিকাল রিডিং 28, ফিজিকাল রিড 0, রিড-ফরোয়ার্ড রিড 0, লব লজিকাল রিড 0, লব ফিজিকাল রিড 0, লব রিড-
ফরোয়ার্ড 0 টেবিল 'সিসচোবজ'। স্ক্যান কাউন্ট 1, লজিক্যাল রিডিং 53926, ফিজিকাল রিড 0, রিড-ফরোয়ার্ড 0 পড়ে, লব লজিকাল রিড 0, লব ফিজিকাল 0, লব রিড-ফরোয়ার্ড 0
আমি অন্তর্নিহিত সিস্টেম টেবিলগুলিতে পরিসংখ্যান আপডেট করতে সক্ষম হয়েছি। এটি আমার এসকিউএল ২০০৮ আর 2 বা আরও নতুন পরিবেশে কাজ করেছে:
UPDATE STATISTICS sys.sysobjrdb WITH FULLSCAN
UPDATE STATISTICS sys.sysschobjs WITH FULLSCAN
আমি সূচক রক্ষণাবেক্ষণ করতে সক্ষম হয়েছি। এটি আমার এসকিউএল 2012 বা আরও নতুন পরিবেশে কাজ করে। উদাহরণস্বরূপ চলমান sp_help 'sys.sysschobjs'
টেবিলে সূচিগুলি সনাক্ত করে এবং সেখান থেকে আমি এই আদেশগুলি তৈরি এবং চালিত করি:
ALTER INDEX clst ON sys.sysschobjs REORGANIZE
ALTER INDEX nc1 ON sys.sysschobjs REORGANIZE
ALTER INDEX nc2 ON sys.sysschobjs REORGANIZE
ALTER INDEX nc3 ON sys.sysschobjs REORGANIZE
পরিসংখ্যান আপডেট করা এবং সূচকগুলি পুনর্গঠিত করা সাহায্য করে তবে খুব বেশি নয়।