ব্লোটেড সিস্টেম টেবিলগুলিতে পারফরম্যান্স উন্নত করতে পারি?


12

পটভূমি:
আমার কাছে ভিউয়ের একটি বিশাল সংখ্যার সাথে অসংখ্য ডেটাবেস এবং একটি অত্যন্ত সংখ্যক সিনওয়ানওয়াইম। উদাহরণস্বরূপ, একটি ডিবিতে 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

পরিসংখ্যান আপডেট করা এবং সূচকগুলি পুনর্গঠিত করা সাহায্য করে তবে খুব বেশি নয়।


সেকি। আমি অনুমান করছি যে আপনি বেশ কিছু বিশৃঙ্খলাযুক্ত বহু ধরণের ভাড়াটিয়া করছেন, প্রত্যেকের ডেটা একই টেবিলের মধ্যে রেখেছেন এবং এটিকে দর্শন দিয়ে ফিল্টার করছেন এবং প্রতিশব্দ ব্যবহার করে তাদের বৃহত আকারে বেস অবজেক্টের নামকরণ করবেন? যেভাবেই হোক, আমি আপনার জন্য অনুভব করি
ফিলি

2
বহু ভাড়াটে? আসলে না. এটা না। বেশ গণ্ডগোল, ঠিক আছে? এফডব্লিউআইডাব্লু, এটি আমার বোধগম্য যে প্রতিটি অ্যাপ্লিকেশন ব্যবহারকারীর জন্য, প্রতিটি টেবিলের জন্য 5 টি সিনওয়াইনিএম তৈরি করা হয়েছে। ভাগ্যবান আমি.
ডেভ ম্যাসন

এই কয়েকটি অবজেক্টের অনুমোদনের অপসারণ কী কার্যকারিতা বাড়ায় (যাতে তাদের ব্যবহারের সম্ভাবনা কম থাকে?) আমি জানি না এটি ব্যবহারকারীর স্তরের এমনকি কোনও বিকল্প কিনা I
কনস্টান্টাইনেকে

এটি সম্পর্কে কার্যকর করার পরিকল্পনাটি আকর্ষণীয় হবে। সম্ভবত আপনি এখানে এস.এল. এম্বেড করার কোনও উপায় না থাকলে, আপনি এস.এস.এল. সেন্ড্রি প্ল্যান এক্সপ্লোরার থেকে উত্তর.সক্ল্পারফরমেশন.কম এ পোস্ট করতে পারেন এবং এর সাথে লিঙ্ক করতে পারেন unless আমি এটি দেখতে আকর্ষণীয় হব
শেল্ডনএইচ

উত্তর:


1

আপনি যদি ইতিমধ্যে এটি না করে থাকেন, তবে প্রাথমিক ডেটা ফাইলটিকে বাকী ডেটা থেকে স্পিন্ডেলের একটি পৃথক সেটে স্থানান্তরিত করে আপনি পারফরম্যান্স অর্জন করতে পারেন ( ফাইল এবং ফাইলগ্রুপ আর্কিটেকচার এবং এসকিউএল সার্ভার: কেবলমাত্র সিস্টেম টেবিলের জন্য ফাইলগ্রুপ? )


আমি মনে করি এটি যথাযথ পরামর্শ, তবে, আইও সেটআপ সংযুক্ত ডিস্কের সাথে কোনও আদর্শ শারীরিক সার্ভার না হলে উদাহরণস্বরূপ সান সহ ভার্চুয়াল উদাহরণ বা এসএসডি ড্রাইভ প্রাথমিক তথ্য ফাইলগুলি পৃথক করার লক্ষণীয় প্রভাবকে হ্রাস করবে অন্য জায়গায়, ডান?
শেলডনএইচ

1
আপনার যদি হার্ডওয়্যার নিয়ন্ত্রণ থাকে (যেমন আপনি কোনও তৃতীয় পক্ষ দ্বারা হোস্ট করা হচ্ছে না), আপনার একটি সান এ স্পিন্ডেলের বিভিন্ন সেট থাকতে পারে (যেমন দুটি বা আরও পৃথক RAID-10 ভলিউম)। যদি আপনি এসএসডি ব্যবহার করে (বা হোস্ট করা) থাকেন তবে কোনও স্পিন্ডল নেই এবং আইও ড্রাইভ এবং মাদারবোর্ডের মধ্যে মূলত বাধা (যেমন Sata, RAID, বা NIC কার্ড, ক্যাবলিং, রাউটার / স্যুইচগুলি) দ্বারা সীমাবদ্ধ থাকবে would , সান, এসএসডি গতি), সুতরাং আপনি সেই ক্ষেত্রে ফাইলগুলি পৃথক করে কোনও লাভ করতে পারবেন না।
জিগি ক্রুয়েল্টিফ্রি জেইটজিস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.