দুটি ডিবিসিসি INDEXDEFRAG কমান্ড একই সাথে চালানো সম্ভব, প্রতিটি আলাদা আলাদা টেবিলে?


9

আমি বর্তমানে একটি স্ক্রিপ্ট চালাচ্ছি যা এসকিউএল সার্ভার ২০০৫ ডাটাবেসে প্রতিটি টেবিলে একটি সময়ে একটি টেবিলে একটি ডিবিসিসি আইএনডিএক্সএক্সডিএফগ্র্যাগ সম্পাদন করে। জায়গার সীমাবদ্ধতা এবং আপটাইম প্রয়োজনীয়তার কারণে INDEXDEFRAG এর পরিবর্তে DBCC DBREINDEX ব্যবহার করা কোনও বিকল্প নয় Using

আমি লক্ষ্য করেছি যে নির্দিষ্ট টেবিলগুলিকে ডিফল্ট করতে দীর্ঘ সময় লাগে। উদাহরণস্বরূপ, যদি আমি "sys.dm_exec_requests" গতিশীল পরিচালন ভিউ পরীক্ষা করি, আমি দেখতে পাচ্ছি যে নীচের INDEXDEFRAG বর্তমানে একটি টেবিলের ক্লাস্টারড সূচীতে 829610394 এর একটি টেবিল_আইড রয়েছে:

ডিবিসিসি ইন্ডেক্সএডএফআর্যাগ (0, 829610394, 1)

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

উত্তর:


15

হ্যাঁ, আপনি একাধিক টেবিলের জন্য এটি করতে পারেন। আপনি একই টেবিলের একাধিক সূচির জন্য এটি করতে পারবেন না - আমি এটি রোধ করতে একটি নতুন সূচক লক সাবসোর্স আবিষ্কার করেছি। অল্টার ইন্ডেক্সে একই আচরণ ... ২০০৩ সালে আমি এটি প্রতিস্থাপন করেছি এমন নিয়ম।

ধন্যবাদ


2
যে ব্যক্তি এটি লিখেছেন তার থেকে বেশি আপনি সঠিক উত্তর পেতে পারবেন না! একই সময়ে একাধিক পুনর্নির্মাণ বা পুনঃনির্মাণ করার সাথে যুক্ত আইও লোড সম্পর্কে ভুলে যাবেন না এবং ডিবিসিসি কমান্ডটি এগিয়ে যাওয়ার পরিবর্তে অলটার ইন্ডেক্স ব্যবহার করতে ভুলবেন না।
অ্যান্ড্রুএসকিউএল

সম্মত, আমি জানি না কীভাবে পল রান্ডাল থেকে সরাসরি কোনও ব্যক্তির চেয়ে এই নির্দিষ্ট বিষয়ে আরও সঠিক উত্তর পাওয়া সম্ভব হবে। ধন্যবাদ পল।
নিরলস মাইক

6

নোট করুন যে ডিবিসিসি আইএনডিএক্সএক্সএক্সএক্সএক্সএক্সএফএফআরএজি এবং ডিবিআরআইএনডিএক্স হ'ল অল্টার ইন্ডেক্স দ্বারা প্রতিস্থাপিত এবং প্রতিস্থাপন করা হয়েছে:

গুরুত্বপূর্ণ

এই বৈশিষ্ট্যটি মাইক্রোসফ্ট এসকিউএল সার্ভারের ভবিষ্যতের সংস্করণে সরানো হবে। নতুন উন্নয়ন কাজে এই বৈশিষ্ট্যটি ব্যবহার করবেন না এবং বর্তমানে যত তাড়াতাড়ি সম্ভব এই বৈশিষ্ট্যটি ব্যবহার করে এমন অ্যাপ্লিকেশনগুলিকে পরিবর্তন করুন। পরিবর্তে ALTER INDEX ব্যবহার করুন। - http://msdn.microsoft.com/en-us/library/ms177571(v=SQL.90).aspx

একইসাথে দুটি চালানোর ক্ষেত্রে এটি আপনার ফাইলের বিন্যাসের উপর নির্ভর করে। যদি তারা সমস্ত একই ডিস্কে থাকে তবে আপনি সম্ভবত একে অপরকে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ঝিলে যেত তারা I / O এর জন্য একে অপরের বিরুদ্ধে লড়াই করছেন। আপনি প্রয়োজন হলে কেবল পুনরায় বা পুনরায় বিল্ডিংয়ের পক্ষে সেরা। স্বয়ংক্রিয় সমাধানের জন্য মিশেল উফোর্ডের স্ক্রিপ্টটি এখানে দেখুন: http://sqlfool.com/2010/04/index-defrag-script-v4-0/


ধন্যবাদ এরিক এই বিশেষ ক্ষেত্রে, ডাটাবেসটি একাধিক ডেটা ফাইল জুড়ে, বিভিন্ন পার্টিশনে এবং একটি আইবিএম ডিএস 8300 সান এর উপরে ছড়িয়ে পড়ে। সুতরাং আমি মনে করি আমি যতদূর I / O যায় ঠিক থাকব।
নিরলস মাইক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.