ডেডলক গ্রাফে কেন ভিকটিমলেস এন্ট্রি রয়েছে?


11

আমি কীভাবে এসকিউএল সার্ভার ২০০৮ এর ডেডলক গ্রাফটি বিশ্লেষণ করতে পারি তা চেষ্টা করার চেষ্টা করছি এবং খালি <victim-list>নোডের সাহায্যে আমি প্রচুর এন্ট্রি খুঁজে পাচ্ছি । আমি বুঝতে পারি না যে এই এন্ট্রিগুলি কী প্রতিনিধিত্ব করে: যদি কোনও শিকার না হয় তবে আমি কীভাবে ওয়েটারসোর্সটি সনাক্ত করতে পারি যা অচলাবস্থার সৃষ্টি করছে? এই এন্ট্রি মানে কি?

আমি যে এন্ট্রিগুলি দেখছি তার একটি দ্রুত উদাহরণ এখানে:

<deadlock-list>
 <deadlock>
  <victim-list />
  <process-list>
   <process id="processd2b6508" taskpriority="0" logused="10000" waittime="31" schedulerid="63" kpid="9104" status="suspended" spid="69" sbid="0" ecid="184" priority="0" trancount="0" lastbatchstarted="2012-07-30T01:10:45.550" lastbatchcompleted="2012-07-30T01:10:45.550" clientapp=".Net SqlClient Data Provider" hostname="XXXXXXX" hostpid="3648" isolationlevel="read committed (2)" xactid="30461033" currentdb="5" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
    <executionStack>
     <frame procname="" line="1" sqlhandle="0x020000002340c50225c17d0eec9bf7c51129348edffd1c70" /> 
     <!--About 2 more frame tags... -->
    </executionStack>
    <inputbuf /> 
   </process>
   <!-- 3 or so more process tags... -->
  </process-list>
  <resource-list>
   <exchangeEvent id="Pipeb005eeba0" WaitType="e_waitPipeNewRow" nodeId="7">
    <owner-list>
     <owner id="processd23fdc8" /> 
    </owner-list>
    <waiter-list>
     <waiter id="processd2b6508" /> 
    </waiter-list>
   </exchangeEvent>
   <!-- 2 more exchangeEvents -->
  </resource-list>
 </deadlock>
</deadlock-list>

** সম্পাদনা করুন ** অনুরোধ অনুসারে, এখানে কোয়েরিটি এটির স্কেলহ্যান্ডল দ্বারা একটি কোয়েরি সনাক্ত করতে ব্যবহৃত হয়:

select sql_handle as Handle,
    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 Text

from sys.dm_exec_query_stats as qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
where sql_handle = --0x04000D00E3572A56542E4601CE9E00010100001000000000

RyanBoyer.net থেকে


আমার এসকিউএল সার্ভারের সংস্করণটি 10.50.1617.0
স্লাইডার 345

উত্তর:


9

এক্সচেঞ্জএভেন্ট এবং ই_ওয়েটপাইপ নিউরো আপনাকে পরামর্শ দেয় যে বার্ট ডানকান আপনাকে বিরক্তিকরভাবে-অমনোযোগী শব্দ হিসাবে উল্লেখ করেছেন : "ইন্ট্রা-কোয়েরি সমান্তরাল থ্রেড ডেডলকস"

বেশিরভাগ ইন্ট্রা-কোয়েরি সমান্তরালতা ডেডলকগুলি বাগ হিসাবে বিবেচিত হয়, যদিও তাদের মধ্যে কিছু ঠিক করার জন্য ঝুঁকিপূর্ণ বাগ হতে পারে তাই কোনও ফিক্স সম্ভব নাও হতে পারে। যদি আপনি এটির মধ্যে চলে যান এবং আপনি ইতিমধ্যে সর্বশেষতম এসকিউএল সার্ভিস প্যাকটিতে রয়েছেন, তবে আপনার সর্বোত্তম বেটটি হ'ল কাজের সীমাটি তদন্ত করা।

সুতরাং, আপনি ব্যতীত অন্য কিছু করতে পারবেন না:

  • আপনি সর্বশেষ পরিষেবা প্যাক এবং संचयी আপডেটে রয়েছেন তা নিশ্চিত করুন।
  • ক্যোয়ারীর কার্যকারিতা উন্নত করতে সূচি এবং অন্যান্য অপ্টিমাইজেশন সনাক্ত করার চেষ্টা করুন। আপনি উল্লেখ করেছেন যে ইনপুটফুফটি জনবহুল নয় তবে আপনি গ্রাফ এক্সএমএলে স্ক্যালহ্যান্ডেলের মাধ্যমে খেলায় ক্যোয়ারী সনাক্ত করতে সক্ষম হতে পারেন। যদি আপনি এগুলি থেকে কিছু না পান তবে এই অচলাবস্থাগুলি সংঘটিত হওয়ার সাথে সাথে কোনও ট্রেস চালিয়ে যাওয়ার এবং সম্পর্কিত করার চেষ্টা করুন।
  • MAXDOPএই ক্যোয়ারির জন্য হ্রাস করুন বা MAXDOP(1)একক থ্রেডযুক্ত সম্পাদনকে জোর করার চেষ্টা করুন । সচেতন থাকুন যে আপনি অচলাবস্থা ঠিক করতে পারেন তবে সমান্তরালতা সীমাবদ্ধ করে পারফরম্যান্স সমস্যার একটি পৃথক সেট উপস্থাপন করুন।
  • মাইক্রোসফ্টের সাথে একটি সমর্থন কল খুলুন। সম্ভবতঃ ক) এই দৃশ্যের জন্য তাদের একটি অ-সর্বজনীন হটফিক্স রয়েছে বা খ) যেহেতু এই অন্তঃ-ক্যোরিয়াস ডেডলকগুলি বাগ হিসাবে মনে করা হয় যে তারা কোনও সমাধান পেতে আপনার সাথে কাজ করতে চাইতে পারে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.