আমি কীভাবে ব্রেন্ট ওজারের এসপি_ব্লিটজ ইন্ডেক্সকে আউুরে চালাতে পারি?


13

আমি ব্রেন্ট ওজারের ওয়েবসাইট থেকে এসকিউএল সার্ভার ফার্স্ট এইড কিটটি ডাউনলোড করেছি। আমি যখন আজুর ডেটাবেস সার্ভার স্তর প্রশাসক হিসাবে লগ ইন করার জন্য মাইক্রোসফ্ট এসকিএল সার্ভার ম্যানেজমেন্ট স্টুডিওর মাধ্যমে আমার মাস্টার ডেটাবেজের বিরুদ্ধে sp_BlitzIndex স্ক্রিপ্টটি চালানোর চেষ্টা করেছি এবং আমি নিম্নলিখিত ত্রুটি পেয়েছি:

এমএসজি 262, স্তর 14, রাজ্য 18, পদ্ধতি এসপি_ব্লিটজ ইন্ডেক্স, লাইন 18 ক্রিয়াকলাপ প্রক্রিয়াজাতকরণের অনুমতিটি ডাটাবেস 'মাস্টার' এ অস্বীকৃত।

আমি সফলভাবে ডাটাবেস উদাহরণটিতে পদ্ধতিটি তৈরি করেছিলাম যা আমি পরীক্ষা করতে চেয়েছিলাম। আমি যখন প্রক্রিয়াটি সম্পাদন করি তখন আমি জানাতে একটি ত্রুটি পেয়েছি:

এমএসজি 50000, স্তর 16, রাজ্য 1, লাইন 1265 অবৈধ অবজেক্টের নাম 'mydatedia.sys.partitions'।

পরবর্তী আমি চালাক হওয়ার চেষ্টা করেছি এবং সঞ্চিত প্রক্রিয়াটি তৈরি না করেই মাস্টার ডাটাবেসের বিরুদ্ধে স্টোরেজ পদ্ধতি কোডটি চালানোর চেষ্টা করি এবং নিম্নলিখিত ত্রুটিটি পেয়েছি:

এমএসজি 50000, স্তর 15, রাজ্য 1, লাইন 1267 এসকিউএল সার্ভারের এই সংস্করণে ডাটাবেস এবং / অথবা 'মাইডাটাবেস.সিস.ইন্ডেক্সেস'-এর সার্ভার নাম উল্লেখ নেই।

আমি সূচক হিউরিস্টিক লজিকের ~ 2700 লাইনের অভ্যন্তরীণ কাজকর্মের সাথে কাজ শুরু করার পক্ষে যথেষ্ট আত্মবিশ্বাসী বোধ করি না। আজুর এসকিউএল ডেটাবেসটিতে সুন্দরভাবে কাজ করার জন্য এই সঞ্চিত পদ্ধতিটি পাওয়ার কি দ্রুত এবং সহজ উপায় আছে বা আমার সূচি বিশ্লেষণকারী সরঞ্জাম / সঞ্চিত পদ্ধতির জন্য অন্য কোথাও তাকানো উচিত?

উত্তর:


24

কেন্দ্র এখানে (লেখক sp_BlitzIndex)

প্রথমত, পদ্ধতিটিতে আগ্রহী হওয়ার জন্য এবং এটি চেষ্টা করে দেখার জন্য ধন্যবাদ।

অ্যাজুরে আমাদের বাক্সযুক্ত পণ্যটিতে প্রাপ্ত সমস্ত গতিশীল পরিচালনা দৃষ্টিভঙ্গি প্রকাশ করে না। আমি প্রকৃতপক্ষে রেফারেন্স করি sys.dm_db_partition_statsতবে sys.partitionsঅন্যান্য ব্যবহারকারীর জন্য আমার অন্যান্য তথ্য নেওয়া দরকার । (এটি কি সংক্ষেপণ ব্যবহার করছে? কী ধরণের?)

আমার একটি অ্যাজুর নির্দিষ্ট সংস্করণ লেখার সময় হয়নি, কেবল কারণ এর জন্য আমার খুব বেশি চাহিদা নেই। তবে আপনার প্রশ্নটি আমাকে জানায় যে আমি জানি তার থেকেও বেশি আগ্রহ আছে - তাই আছে!

আমি কিছু ত্রুটি পরিচালনা পরিচালনা করার ক্ষেত্রে ন্যূনতম নজর রাখব যাতে এটি আপনাকে একটি করুণ পদ্ধতিতে জানায়। (এটি কিছুটা চলমান লক্ষ্যমাত্রা, কারণ অ্যাজুরে ব্যবহারকারীদের জন্য উপলব্ধ বৈশিষ্ট্যগুলি প্রসারিত করে চলেছে))


1
যেহেতু ভি 12 আরও অনেক ডিএমভির উদ্ভাসিত করেছে আপনি কি মনে করেন আপনি sp_BlitzIndexভি 12 এ কাজ করতে সক্ষম হবেন বা এটি এখনও সার্থক হওয়ার জন্য খুব বেশি প্রাসঙ্গিক বিটগুলি হারিয়েছে? শর্ত থাকে আপনার অতিরিক্ত সময় / কোর্সের চাহিদা রয়েছে। :)
এরিক

@ কেন্দ্রে - এটি খুব ভাল লাগবে যদি এটি অ্যাজুরেতে কাজ করার জন্য আপডেট করা যেতে পারে !! আমি লক্ষ্য করেছি যে সর্বশেষতম সংস্করণ 20160715 চালানোর সময় ত্রুটি হয় না sp_BlitzIndexতবে সন্দেহজনকভাবে এটি বলে যে কোনও বড় সমস্যা খুঁজে পাওয়া যায় নি। আমার সন্দেহ হয় এটি প্রয়োজনীয় কারণ এখনও প্রয়োজনীয় তথ্য আজুরে পাওয়া যায় না। আমি যখন দৌড়ে যাই তখন আমি @mode=4একটি ত্রুটি পাই।
ররি

আমি এখনই অন্যান্য প্রকল্পগুলিতে কাজ করছি, এবং এসপি_ব্লিটজ ইনডেক্সে আমি এতদিন কাজ করেছি যে আমি কোডটিও চিনতে পারি কিনা জানি না। তবে সুসংবাদ, এটি এখন উন্মুক্ত উত্স! অন্যান্য লোকেরা এটিও করতে পারে। আপনি প্রথম চিঠিপত্রকটি.আরজি
কেন্দ্রে

1

অনুপস্থিত সূচকগুলি চিহ্নিত করার জন্য কিছু 'স্ট্যান্ডার্ড' ক্যোয়ারী আজুরের উপর চালিত হয়, উদাহরণস্বরূপ :

  SELECT
  migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) AS improvement_measure,
  'CREATE INDEX [missing_index_' + CONVERT (varchar, mig.index_group_handle) + '_' + CONVERT (varchar, mid.index_handle)
  + '_' + LEFT (PARSENAME(mid.statement, 1), 32) + ']'
  + ' ON ' + mid.statement
  + ' (' + ISNULL (mid.equality_columns,'')
    + CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns IS NOT NULL THEN ',' ELSE '' END
    + ISNULL (mid.inequality_columns, '')
  + ')'
  + ISNULL (' INCLUDE (' + mid.included_columns + ')', '') AS create_index_statement,
  migs.*, mid.database_id, mid.[object_id]
FROM sys.dm_db_missing_index_groups mig
INNER JOIN sys.dm_db_missing_index_group_stats migs ON migs.group_handle = mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details mid ON mig.index_handle = mid.index_handle
WHERE migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) > 10
ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC

তারা sp_BlitzIndexচেষ্টা করার চেয়ে অনেক কম দরকারী বলে মনে হচ্ছে ।

শীর্ষ ক্যোয়ারীগুলি সনাক্ত করতে এখানে আরও কার্যকর ক্যোয়ারী রয়েছে, যা আপনি এসকিউএল ম্যানেজমেন্ট স্টুডিওর মাধ্যমে অনুপস্থিত সূচকগুলি সনাক্ত করতে এক্সিকিউশন প্ল্যান দিয়ে চালাতে পারেন। একের পর এক এগুলি করা ক্লান্তিকর কিন্তু কিছুই না থেকে ভাল:

SELECT TOP 1000 qs.execution_count, 
       qs.total_worker_time, 
       qs.total_worker_time / qs.execution_count AS 'Avg CPU Time', 
       qs. total_physical_reads, 
       qs.total_physical_reads / qs.execution_count AS 'Avg Physical Reads', 
       qs.total_logical_reads, 
       qs.total_logical_reads / qs.execution_count AS 'Avg Logical Reads', 
       qs.total_logical_writes, 
       qs.total_logical_writes / qs.execution_count AS 'Avg Logical Writes', 
       SUBSTRING(st.text, qs.statement_start_offset / 2 + 1, 
        (CASE qs.statement_end_offset
                     WHEN-1 THEN DATALENGTH(st.text)
                     ELSE qs.statement_end_offset
                     END
           - qs.statement_start_offset) / 2 + 1)AS statement_text
  FROM sys.dm_exec_query_stats AS qs 
  CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle)AS st
  ORDER BY qs.execution_count DESC;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.