Sql പ്രൊഫൈലർ ഉപയോഗം. SQL പ്രൊഫൈലർ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു. SQL പ്രൊഫൈലർ - ഉദ്ദേശ്യം

SQL സെർവർ പ്രൊഫൈലർ സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നം ട്രെയ്‌സുകൾ സൃഷ്‌ടിക്കുന്നതിനും ട്രെയ്സ് ഫലങ്ങൾ വിശകലനം ചെയ്യുന്നതിനുമായി രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്ന ഒരു ഗ്രാഫിക്കൽ ഷെല്ലാണ്. ഇവന്റുകൾ ഒരു ട്രെയ്‌സ് ഫയലിൽ സംഭരിച്ചിരിക്കുന്നു, അത് പിന്നീട് വിശകലനം ചെയ്യാനോ അല്ലെങ്കിൽ സംഭവിച്ച പ്രശ്‌നങ്ങൾ തിരിച്ചറിയുന്നതിനുള്ള നിർദ്ദിഷ്ട ഘട്ടങ്ങൾ വീണ്ടും പ്ലേ ചെയ്യാനോ ഉപയോഗിക്കാം.

നിലവിൽ നടപ്പിലാക്കുന്ന പ്രവർത്തനങ്ങൾ ട്രാക്കുചെയ്യുന്നതിന്, നിങ്ങൾ MS SQL പ്രൊഫൈലർ സമാരംഭിക്കേണ്ടതുണ്ട്, ഒരു പുതിയ ട്രെയ്സ് സൃഷ്ടിക്കുകയും സൂചകങ്ങളുടെ വിശകലനം ക്രമീകരിക്കുകയും വേണം:

പൊതുവായ ടാബിൽ, നിങ്ങൾ ട്രേസിന്റെ പേര് വ്യക്തമാക്കണം. ക്യാപ്‌ചർ ചെയ്‌ത ട്രെയ്‌സ് ഡാറ്റ എവിടെയാണ് സംരക്ഷിക്കേണ്ടതെന്ന് വ്യക്തമാക്കുക - ഒരു ഫയലിലേക്കും കൂടാതെ/അല്ലെങ്കിൽ ഒരു ഡാറ്റാബേസ് ടേബിളിലേക്കും.

“ഇവന്റ് സെലക്ഷൻ” ടാബാണ് വലിയ താൽപ്പര്യം:

നിരീക്ഷിക്കേണ്ട ഇവന്റുകൾ ഈ പേജ് വ്യക്തമാക്കുന്നു. ഈ ഉദാഹരണത്തിൽ, അന്വേഷണ പ്ലാനുകൾ ട്രാക്ക് ചെയ്യുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾ സൂചിപ്പിക്കും.

1C-യിൽ 267 വീഡിയോ പാഠങ്ങൾ സൗജന്യമായി നേടൂ:

സ്ഥിരസ്ഥിതിയായി, എല്ലാ ഡാറ്റാബേസുകളിലും എല്ലാ നിർദ്ദിഷ്ട ഇവന്റുകളിലുടനീളം ട്രെയ്‌സിംഗ് പ്രവർത്തിക്കുന്നു. ലഭിച്ച ഡാറ്റയിലേക്ക് തിരഞ്ഞെടുക്കലുകൾ പ്രയോഗിക്കുന്നതിന്, നിങ്ങൾ "കോളം ഫിൽട്ടറുകൾ ..." ബട്ടൺ ക്ലിക്ക് ചെയ്യണം:

ഉദാഹരണത്തിന്, ഇൻഫോബേസ് ഐഡന്റിഫയർ ഉപയോഗിച്ച് തിരഞ്ഞെടുക്കൽ സജ്ജമാക്കാം (നിങ്ങൾക്ക് SELECT DB_ID(N'BaseName') എന്ന ചോദ്യം ഉപയോഗിച്ച് ഡാറ്റാബേസ് ഐഡി കണ്ടെത്താം).

1C-യ്‌ക്കായി പ്രൊഫൈലറിൽ ഒരു ട്രെയ്സ് പ്രവർത്തിപ്പിക്കുന്നു

എല്ലാ ക്രമീകരണങ്ങളും ചെയ്തുകഴിഞ്ഞാൽ, ട്രാക്കിംഗ് ആരംഭിക്കുക മാത്രമാണ് അവശേഷിക്കുന്നത്; ഇത് ചെയ്യുന്നതിന്, "റൺ" ക്ലിക്ക് ചെയ്യുക. ഈ നിമിഷം മുതൽ, ഫിൽട്ടറിൽ വ്യക്തമാക്കിയ എല്ലാ പ്രവർത്തനങ്ങളും ട്രേസിൽ ഉൾപ്പെടുത്തും:

ഉദാഹരണത്തിന്, ഏറ്റവും കൂടുതൽ അധ്വാനിക്കുന്ന പ്രവർത്തനങ്ങൾ ട്രാക്കുചെയ്യുന്നതിന് "ചരക്കുകളുടെയും സേവനങ്ങളുടെയും രസീതുകൾ" എന്ന പ്രമാണത്തിന്റെ ദൈർഘ്യത്തിനായി ഞാൻ ഒരു ട്രെയ്സ് പ്രവർത്തിപ്പിക്കുന്നു.

ട്രെയ്സ് ലഭിച്ചുകഴിഞ്ഞാൽ, അത് വിശകലനം ചെയ്യേണ്ടതുണ്ട്.

പ്രൊഫൈലറിൽ നിന്നുള്ള ഡാറ്റ വിശകലനം ചെയ്യുന്നു

വിശകലനത്തിനായി, തത്ഫലമായുണ്ടാകുന്ന ട്രെയ്സ് ഒരു ഫയലിലേക്കോ പട്ടികയിലേക്കോ സംരക്ഷിക്കാൻ കഴിയും. ഞങ്ങൾ ഒരു ഡാറ്റാബേസ് പട്ടികയിൽ സംരക്ഷിക്കും:

05/16/2000 ഇറ്റ്സിക് ബെൻ-ഗാൻ

ഒരു കുറ്റകൃത്യം പുനഃസൃഷ്ടിക്കുന്നത് കുറ്റവാളിയെ കണ്ടെത്താൻ സഹായിക്കുന്നതുപോലെ, ഒരു ഡാറ്റാബേസ് കണ്ടെത്തുന്നത് തടസ്സങ്ങൾ തിരിച്ചറിയാനും അവ ഇല്ലാതാക്കാനും സഹായിക്കുന്നു.

മാസികയുടെ മുൻ ലക്കത്തിൽ പ്രസിദ്ധീകരിച്ച “ഒരു ഇവന്റ് പിടിക്കുക” എന്ന ലേഖനം, SQL സെർവർ 7.0 ട്രെയ്‌സിംഗ് സിസ്റ്റത്തിന്റെ ആർക്കിടെക്ചറിനെക്കുറിച്ച് വിവരിക്കുകയും SQL പ്രൊഫൈലറിലെ ഒരു ട്രെയ്സ് എങ്ങനെ ഗ്രാഫിക്കായി നിർവചിക്കാമെന്ന് കാണിക്കുകയും ചെയ്തു. എസ്‌ക്യുഎൽ പ്രൊഫൈലർ ഉപയോഗിച്ച് ട്രെയ്‌സുകൾ എങ്ങനെ പുനർനിർമ്മിക്കാം, വിപുലീകൃത ട്രേസ് സംഭരിച്ച നടപടിക്രമങ്ങൾ ഉപയോഗിച്ച് യാന്ത്രിക ആരംഭം എങ്ങനെ നിർണ്ണയിക്കാം എന്നതിനെക്കുറിച്ചും ഇത്തവണ നമ്മൾ സംസാരിക്കും. ഈ ശക്തമായ അടിത്തറയിൽ കെട്ടിപ്പടുക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് വിദഗ്ധമായി SQL പ്രൊഫൈലറും സംഭരിച്ച നടപടിക്രമങ്ങളും ഉപയോഗിച്ച് ദീർഘകാല അന്വേഷണങ്ങൾ മുതൽ സങ്കീർണ്ണമായ ഡെഡ്‌ലോക്കുകൾ വരെ എല്ലാം അന്വേഷിക്കാൻ കഴിയും.

റൂട്ട് പുനർനിർമ്മിക്കുന്നതിനുള്ള പ്രാഥമിക തയ്യാറെടുപ്പ്

SQL പ്രൊഫൈലർ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് പ്രശ്നമുള്ള ആപ്ലിക്കേഷനുകൾ ഡീബഗ് ചെയ്യാനും വിവിധ യഥാർത്ഥ ജീവിത സാഹചര്യങ്ങൾ ഉപയോഗിച്ച് ടെസ്റ്റ് സാഹചര്യങ്ങൾ സൃഷ്ടിക്കാനും ഡാറ്റാബേസുകൾ കോൺഫിഗർ ചെയ്യാനും അതിലേറെ കാര്യങ്ങൾ ചെയ്യാനും സംരക്ഷിച്ച ട്രെയ്‌സുകൾ ആവർത്തിക്കാനാകും. നിങ്ങൾക്ക് റൂട്ട് വീണ്ടും കണ്ടെത്തണമെങ്കിൽ, നിങ്ങൾ കുറച്ച് തയ്യാറെടുപ്പ് ജോലികൾ ചെയ്യേണ്ടിവരും. ആദ്യം, നിങ്ങൾക്ക് താൽപ്പര്യമുള്ളവ ഒഴികെയുള്ള നിർദ്ദിഷ്ട ഇവന്റുകളും ഡാറ്റയുടെ കോളങ്ങളും ട്രാക്കുചെയ്യുന്നതിന് നിങ്ങൾ ഒരു ട്രെയ്സ് നിർവ്വചിക്കേണ്ടതുണ്ട്. ഈ അധിക ഇവന്റുകളും കോളങ്ങളും ക്യാപ്‌ചർ ചെയ്യുന്നത് എല്ലാ പ്രവർത്തനങ്ങളും മുമ്പ് സംഭവിച്ചതുപോലെ തന്നെ ആവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു. രണ്ടാമതായി, നിങ്ങൾ ട്രെയ്സ് ഫലങ്ങൾ ഒരു ഫയൽ, ടേബിൾ അല്ലെങ്കിൽ SQL സ്ക്രിപ്റ്റിലേക്ക് സംരക്ഷിക്കണം.

ഏതൊരു പുനരാരംഭിക്കലിനും കണക്റ്റ്, ഡിസ്‌കണക്റ്റ്, നിലവിലുള്ള കണക്ഷൻ ഇവന്റുകൾ, അതുപോലെ RPC:Starting, SQL:BatchStarting എന്നിവ ക്യാപ്‌ചർ ചെയ്യേണ്ടതുണ്ട്. കൂടാതെ, ബാക്കെൻഡ് API കഴ്‌സറുകൾ പ്ലേ ചെയ്യുമ്പോൾ (അതായത്, API കഴ്‌സർ ഫംഗ്‌ഷനുകൾ നിയന്ത്രിക്കുന്ന സെർവർ കഴ്‌സറുകൾ), നിങ്ങൾ CursorExecute, CursorOpen, CursorPrepare ഇവന്റുകൾ ക്യാപ്‌ചർ ചെയ്യണം. തയ്യാറാക്കിയ സെർവർ-സൈഡ് SQL പ്രസ്താവനകൾ പുനർനിർമ്മിക്കുന്നതിന്, നിങ്ങൾ Exec തയ്യാറാക്കിയ SQL ചേർക്കുകയും SQL ഇവന്റുകൾ തയ്യാറാക്കുകയും വേണം. പുനർനിർമ്മാണത്തിന് ഇനിപ്പറയുന്ന ഡാറ്റ അടങ്ങിയിരിക്കുന്ന കോളങ്ങൾ ആവശ്യമാണ്: ആപ്ലിക്കേഷന്റെ പേര്, ബൈനറി വിവരങ്ങൾ, കണക്ഷൻ ഐഡി അല്ലെങ്കിൽ സെർവർ പ്രോസസ്സ് ഐഡി (SPID), ഡാറ്റാബേസ് ഐഡി, ഇവന്റ് ക്ലാസ്, ഇവന്റ് സബ്ക്ലാസ്, ഹോസ്റ്റ് നാമം, ഡിജിറ്റൽ വിവരങ്ങൾ, സെർവർ പേര്, ഉപയോക്തൃ നാമം SQL, റൺ ആരംഭ സമയവും വാചക വിവരങ്ങളും.

വീണ്ടും പ്രവർത്തിക്കുമ്പോൾ, റെക്കോർഡ് ചെയ്ത ഇവന്റുകൾ അനുകരിക്കപ്പെടുന്നില്ല, അവ വീണ്ടും സംഭവിക്കുന്നു എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. അതിനാൽ, പ്രാരംഭ ട്രെയ്‌സിംഗ് പ്രക്രിയയിൽ നിങ്ങൾ മിക്കവാറും നിങ്ങളുടെ ഡാറ്റാബേസ് മാറ്റാൻ സാധ്യതയുണ്ട്. ഉദാഹരണത്തിന്, ഒരു INSERT പ്രസ്താവന ഉൾപ്പെടുന്ന ഒരു ട്രെയ്സ് വീണ്ടും പ്ലേ ചെയ്യുമ്പോൾ, ഒരു ഡ്യൂപ്ലിക്കേറ്റ് കീ പട്ടികയിൽ ദൃശ്യമായേക്കാം. അത്തരം പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ, യഥാർത്ഥ സെർവറിൽ (അതായത്, യഥാർത്ഥ ട്രെയ്സ് പ്രവർത്തിപ്പിച്ച സെർവർ) ട്രെയ്സ് വീണ്ടും പ്ലേ ചെയ്യുകയാണെങ്കിൽ, നിങ്ങൾ ഡാറ്റാബേസ് അതിന്റെ യഥാർത്ഥ അവസ്ഥയിലേക്ക് മാറ്റണം.

നിങ്ങൾ മറ്റൊരു സെർവറിൽ വീണ്ടും പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, ആ സെർവറിലെ ഡാറ്റാബേസ് യഥാർത്ഥ സെർവറിലെ ഡാറ്റാബേസിന്റെ അതേ അവസ്ഥയിലാണെന്ന് ഉറപ്പാക്കേണ്ടത് പ്രധാനമാണ്. ഈ സാഹചര്യത്തിൽ, സോഴ്സ് സെർവറിൽ ഉപയോഗിച്ച അതേ ഉപയോക്തൃനാമങ്ങളും അവയുടെ അധികാരങ്ങളും ഡാറ്റാബേസ് ഐഡന്റിഫയറുകളും നിങ്ങൾ ഉപയോഗിക്കണം.

ഒരേ ഐഡന്റിഫയറുകൾ ഉപയോഗിക്കുന്നതിന് പ്രത്യേക വൈദഗ്ധ്യവും അനുഭവപരിചയവും ആവശ്യമാണ്, പ്രത്യേകിച്ചും ഡാറ്റാബേസ് ഐഡന്റിഫയറുകൾ മാറ്റുന്നതിന് നേരിട്ട് sysdabases സിസ്റ്റം ടേബിളിലേക്ക് പ്രവേശിക്കുന്നത് Microsoft പ്രോത്സാഹിപ്പിക്കാത്തതിനാൽ. നിങ്ങൾക്ക് മറ്റൊരു രീതിയിൽ ഡാറ്റാബേസ് ഐഡികൾ പൊരുത്തപ്പെടുത്താനാകും. ഇത് ചെയ്യുന്നതിന്, ഉറവിട സെർവറിൽ നിന്ന് ട്രേസ് പ്ലേ ചെയ്യുന്ന ഒന്നിലേക്ക് ഉപയോക്തൃ ഡാറ്റാബേസ് ഫയലുകൾ പകർത്തുക, തുടർന്ന് ഉറവിട സെർവറിൽ നിന്ന് മാസ്റ്റർ ഡാറ്റാബേസ് ബാക്കപ്പ് അതിലേക്ക് പുനഃസ്ഥാപിക്കുക. റണ്ണിനായി തിരഞ്ഞെടുത്ത സെർവറിലേക്ക് സോഴ്‌സ് സെർവറിൽ നിന്ന് ഉപയോക്തൃ ഡാറ്റാബേസ് ബാക്കപ്പ് പുനഃസ്ഥാപിക്കുക, തുടർന്ന് അവിടെ മാസ്റ്റർ ഡാറ്റാബേസ് ബാക്കപ്പ് പുനഃസ്ഥാപിക്കുക എന്നതാണ് മറ്റൊരു രീതി. രണ്ട് സാഹചര്യങ്ങളിലും, ട്രെയ്സ് പ്ലേ ചെയ്യുന്ന സെർവറിൽ, ഡാറ്റാബേസ് ഫയലുകൾ സോഴ്സ് സെർവറിലെ അതേ ഡയറക്ടറികളിൽ സ്ഥിതിചെയ്യും, കൂടാതെ മാസ്റ്റർ ഡാറ്റാബേസ് സിസ്റ്റം ടേബിളുകളിൽ യഥാർത്ഥ ഡാറ്റാബേസ് ഐഡികൾ അടങ്ങിയിരിക്കും. ഈ പ്രശ്‌നങ്ങൾ പൂർണ്ണമായും ഇല്ലാതാക്കാൻ, ട്രെയ്‌സിൽ നിന്ന് ഡാറ്റാബേസ് ഐഡി കോളം നീക്കം ചെയ്‌ത് ട്രേസ് സമയത്ത് ക്യാപ്‌ചർ ചെയ്യുന്ന ഓരോ ഉപയോക്താവിനും സ്ഥിരസ്ഥിതി ഡാറ്റാബേസ് സജ്ജമാക്കുക.

നിങ്ങൾക്ക് സ്ക്രിപ്റ്റ് സിൻക്രൊണൈസേഷൻ ലെവലും പ്ലേബാക്ക് വേഗതയും നിയന്ത്രിക്കാനാകും. റീപ്ലേ SQL സെർവർ ഡയലോഗ് ബോക്സിൽ പ്രവേശിക്കാൻ റീപ്ലേ മെനുവിൽ നിന്ന് ക്രമീകരണങ്ങൾ തിരഞ്ഞെടുക്കുക. കണക്ഷനുള്ളിലെ സിൻക്രൊണൈസേഷൻ നിയന്ത്രിക്കുന്ന സിൻക്രൊണൈസേഷൻ ലെവൽ പാരാമീറ്ററിന് ഇനിപ്പറയുന്ന മൂല്യങ്ങൾ എടുക്കാം:

പൂർണ്ണ സമന്വയം.ഇതാണ് സ്ഥിര മൂല്യം. ഈ സാഹചര്യത്തിൽ, ഒരു കണക്ഷനിൽ സംഭവിച്ച എല്ലാ സംഭവങ്ങളും അവയുടെ യഥാർത്ഥ ക്രമത്തിൽ പുനർനിർമ്മിക്കുന്നു. ഭാഗിക സമന്വയം.ഈ മൂല്യം ഉപയോഗിച്ച്, മറ്റ് കണക്ഷനുകളിൽ ഇതിനകം റെക്കോർഡ് ചെയ്ത ഇവന്റുകൾക്ക് മുമ്പ് ഒരു കണക്ഷനിലെ ഇവന്റുകൾ ആരംഭിക്കാൻ കഴിയും. സമന്വയമില്ല.ഈ പാരാമീറ്റർ മൂല്യം ഉപയോഗിച്ച്, സമാന കണക്ഷനിൽ മുമ്പത്തെ ഇവന്റ് അവസാനിച്ചതിന് തൊട്ടുപിന്നാലെ ഇവന്റുകൾ സംഭവിക്കാം, അതായത്, കണക്ഷനിൽ ഏതെങ്കിലും സമന്വയം കൂടാതെ.

റീപ്ലേ സ്പീഡ് പാരാമീറ്റർ, റീപ്ലേ നിരക്കുകൾ, ഇനിപ്പറയുന്ന മൂല്യങ്ങളിൽ ഒന്നിലേക്ക് സജ്ജീകരിക്കാം:

കഴിയുന്നത്ര വേഗം.ഇതാണ് സ്ഥിര മൂല്യം. ഈ സാഹചര്യത്തിൽ, മുമ്പത്തേത് അവസാനിച്ചതിന് തൊട്ടുപിന്നാലെ അടുത്ത ഇവന്റ് ആരംഭിക്കും. ഇവന്റുകൾ തമ്മിലുള്ള ഇടവേള നിലനിർത്തുക.ഈ മൂല്യം സംഭവങ്ങളുടെ സംഭവങ്ങൾ തമ്മിലുള്ള യഥാർത്ഥ സമയ ഇടവേള സംരക്ഷിക്കുന്നു. ആരംഭിക്കുന്ന സമയം വരെ ബന്ധം നിലനിർത്തുക.ഈ മൂല്യം ഉപയോഗിച്ച്, ഒറിജിനൽ ട്രെയ്‌സിലേതുപോലെ ട്രെയ്സ് പ്ലേബാക്കിന്റെ ആരംഭവുമായി ബന്ധപ്പെട്ട അതേ സമയങ്ങളിൽ ഇവന്റുകൾ സംഭവിക്കുന്നു.

റൂട്ട് പ്ലേബാക്കിന്റെ ഓർഗനൈസേഷൻ

ഒരു ഉപയോക്താവ് ADO, OLE DB അല്ലെങ്കിൽ ODBC വഴി സെർവറിലേക്ക് അയച്ച ട്രാൻസാക്റ്റ്-എസ്‌ക്യുഎൽ (ടി-എസ്‌ക്യുഎൽ) പ്രസ്താവനകളായ, തയ്യാറാക്കിയ സെർവർ സൈഡ് എസ്‌ക്യുഎൽ സ്റ്റേറ്റ്‌മെന്റുകളുടെ എക്‌സിക്യൂഷൻ ട്രെയ്‌സ് പുനർനിർമ്മിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് കരുതുക. ക്ലയന്റ് ആപ്ലിക്കേഷൻ വിളിക്കുന്ന sp_prepare, sp_execute കപട സംഭരിച്ച നടപടിക്രമങ്ങൾ ഉപയോഗിച്ച് സെർവർ സൈഡ് തയ്യാറാക്കിയ SQL പ്രസ്താവനകൾ SQL സെർവർ 7.0 നടപ്പിലാക്കുന്നു.

sp_prepare എന്ന് വിളിക്കുന്നത് SQL സെർവറിന് T_SQL സ്റ്റേറ്റ്‌മെന്റുകൾ കംപൈൽ ചെയ്തും എക്‌സിക്യൂഷൻ പ്ലാനുകൾ കാഷെ ചെയ്തും എക്‌സിക്യൂഷനുവേണ്ടി തയ്യാറാക്കാൻ കാരണമാകുന്നു. sp_execute എന്ന് വിളിക്കുമ്പോൾ, SQL സെർവർ മുമ്പ് കാഷെ ചെയ്‌ത പ്ലാനുകൾ എക്‌സിക്യൂട്ട് ചെയ്യുന്നു, ഒരുപക്ഷേ അത് ആവർത്തിച്ച് ചെയ്യുന്നു. സംഭരിച്ച ഓരോ പ്രൊസീജർ കോളും RPC സൃഷ്ടിക്കുന്നു:ബാച്ച്സ്റ്റാർട്ടിംഗ്, SQL തയ്യാറാക്കുക, Exec തയ്യാറാക്കിയ SQL ഇവന്റുകൾ. ഈ കാരണത്താലാണ് ഈ സംഭവങ്ങൾ റൂട്ടിന്റെ നിർവചനത്തിൽ ഉൾപ്പെടുത്തേണ്ടത്.

നിങ്ങൾക്ക് ടെംപ്ലേറ്റുകളായി ഉപയോഗിക്കാനാകുന്ന നിരവധി ഉദാഹരണ ട്രെയ്സ് നിർവചനങ്ങൾ SQL പ്രൊഫൈലറിൽ അടങ്ങിയിരിക്കുന്നു. ഒരു ട്രെയ്‌സ് വീണ്ടും പ്രവർത്തിപ്പിക്കുന്നതുമായി ബന്ധപ്പെട്ട ഉദാഹരണ നമ്പർ 6, “റീപ്ലേയ്‌ക്കുള്ള T-SQL” ഉൾപ്പെടെ. റീപ്ലേ സമയത്ത് ജനറേറ്റ് ചെയ്യുന്ന ട്രെയ്സ് ഔട്ട്പുട്ട് വ്യക്തമാക്കുന്നതിന് ഈ ഉദാഹരണം ഉപയോഗപ്രദമാണ്. പ്ലേബാക്കിനായി സംരക്ഷിച്ച ട്രെയ്‌സ് ഔട്ട്‌പുട്ട് തുറക്കുന്നതിന്, ഫയൽ മെനുവിൽ നിന്ന് ഓപ്പൺ തിരഞ്ഞെടുക്കുക, ട്രേസ് സമയത്ത് ശേഖരിച്ച വിവരങ്ങൾ സംഭരിക്കുന്നതിന് ഒരു ഫയൽ, പട്ടിക അല്ലെങ്കിൽ SQL സ്‌ക്രിപ്റ്റ് തിരഞ്ഞെടുക്കുക. പട്ടിക 1-ൽ കാണിച്ചിരിക്കുന്ന ഓപ്‌ഷനുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് പ്ലേബാക്ക് നിയന്ത്രിക്കാനാകും. റീപ്ലേ മെനു ഇനങ്ങൾ വഴിയോ ടൂൾബാറിലെ ബട്ടണുകൾ വഴിയോ അവ പ്രതിനിധീകരിക്കാം.

വിപുലീകരിച്ച സംഭരിച്ച നടപടിക്രമങ്ങൾ ഉപയോഗിക്കുന്നു

SQL പ്രൊഫൈലറിൽ നിന്നുള്ള ചില ട്രെയ്‌സിംഗ് സവിശേഷതകൾ ലഭ്യമല്ല. ഒരു ഷെഡ്യൂളിൽ ഒരു ട്രെയ്സ് പ്രവർത്തിപ്പിക്കുക, ഒരു നിർദ്ദിഷ്ട ഇവന്റ് സംഭവിക്കുമ്പോൾ പ്രവർത്തിക്കുക, അല്ലെങ്കിൽ SQL സെർവർ പ്രവർത്തിക്കാൻ തുടങ്ങുമ്പോൾ എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു. കൂടാതെ, Windows NT അല്ലെങ്കിൽ Windows 2000 ആപ്ലിക്കേഷൻ ലോഗിലേക്ക് ട്രെയ്‌സ് ഫലങ്ങൾ അയയ്‌ക്കുന്നതിന് SQL പ്രൊഫൈലറിന് കോൺഫിഗർ ചെയ്യാൻ കഴിയില്ല. ഈ പ്രവർത്തനങ്ങൾ നിർവഹിക്കുന്നതിനും ട്രെയ്‌സുകൾ പ്രോഗ്രമാറ്റിക്കായി കൈകാര്യം ചെയ്യുന്നതിൽ കൂടുതൽ സ്വാതന്ത്ര്യം നൽകുന്നതിനും, നിങ്ങൾക്ക് xp_trace* എന്ന് വിളിക്കുന്ന ഒരു കൂട്ടം വിപുലമായ സംഭരിച്ച നടപടിക്രമങ്ങൾ ഉപയോഗിക്കാം.

ഒരു ട്രെയ്സ് sp_start_mytrace ആരംഭിക്കുന്നതിന്റെ ഉദാഹരണവും ഒരു ട്രെയ്സ് sp_stop_mytrace നിർത്തുന്നതിനുള്ള സംഭരിച്ച നടപടിക്രമവും ഉപയോഗിച്ച് ഈ സംഭരിച്ച നടപടിക്രമങ്ങൾ ഉപയോഗിക്കുന്നതിന്റെ തത്വങ്ങൾ നോക്കാം. ആദ്യം സംഭരിച്ച നടപടിക്രമം, sp_start_mytrace, ട്രെയ്സ് ഇവന്റുകൾ, ഡാറ്റ കോളങ്ങൾ, ഫിൽട്ടറുകൾ എന്നിവ നിർവചിക്കുകയും ക്യാപ്ചർ ചെയ്ത ഇവന്റുകൾ സംഭരിക്കുന്നതിന് ഒരു ക്യൂ സൃഷ്ടിക്കുകയും ചെയ്യുന്നു. ഇത് ക്യൂവിൽ നിന്ന് ഇവന്റുകൾ വീണ്ടെടുക്കുകയും ഒരു സിസ്റ്റം ഫയലിൽ സ്ഥാപിക്കുകയും ചെയ്യുന്നു. sp_start_mytrace നടപടിക്രമം ഇവന്റ് ക്യൂവുമായി ആശയവിനിമയം നടത്തുകയും ക്യൂ നിർമ്മിക്കുമ്പോൾ നടപടിക്രമം സൃഷ്ടിക്കുന്ന പൂർണ്ണസംഖ്യ ക്യൂ ഹാൻഡിൽ വഴി അതിന്റെ അവസ്ഥ ട്രാക്കുചെയ്യുകയും ചെയ്യുന്നു. sp_stop_mytrace ക്യൂവിംഗ് നിർത്തേണ്ടിവരുമ്പോൾ ഈ ഹാൻഡിൽ ഉപയോഗിക്കുന്നു.

ഒരു ക്യൂ ഹാൻഡിലിന്റെ അവസ്ഥ നിരീക്ഷിക്കുന്നത് എളുപ്പമുള്ള കാര്യമല്ല. അതിന്റെ മൂല്യം ലഭിക്കുന്നതിന് നിരവധി മാർഗങ്ങൾ ഉണ്ടെങ്കിലും, ഏറ്റവും ലളിതവും പ്രവർത്തനപരവുമായ മാർഗ്ഗം, എല്ലാ ട്രെയ്സുകളെയും അവയുടെ ക്യൂകളെയും കുറിച്ചുള്ള ഡാറ്റ രേഖപ്പെടുത്തുന്ന ഒരു പട്ടിക സൃഷ്ടിക്കുക എന്നതാണ്, കൂടാതെ ട്രെയ്സ് ആരംഭിച്ച സമയം, പ്രവർത്തനക്ഷമമാക്കിയ ഉപയോക്താവിന്റെ ഉപയോക്തൃ ഐഡി ട്രെയ്‌സും അത് വിക്ഷേപിച്ച കമ്പ്യൂട്ടറിന്റെ പേരും. ലിസ്റ്റിംഗ് 1, ആക്റ്റീവ് ട്രേസുകൾ എന്ന് വിളിക്കുന്ന അത്തരം ഒരു പട്ടിക സൃഷ്ടിക്കുന്ന പ്രസ്താവനകൾ കാണിക്കുന്നു. നിലവിൽ ഏതൊക്കെ ട്രെയ്‌സുകളാണ് ക്യാപ്‌ചർ ചെയ്‌തിരിക്കുന്നതെന്ന് കാണാൻ, ഈ പട്ടിക നോക്കുക. ഒരു ട്രെയ്‌സ് നിർത്താൻ, അനുബന്ധ ക്യൂ ഡിസ്ക്രിപ്റ്ററിനായി നിങ്ങൾ പട്ടികയിൽ അന്വേഷിക്കുക.

ഒരു ട്രെയ്സ് പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള സംഭരിച്ച നടപടിക്രമം

ട്രെയ്‌സിംഗ് ആരംഭിക്കുന്നതും നിർത്തുന്നതും എങ്ങനെയെന്ന് കാണാൻ ഈ രണ്ട് സംഭരിച്ച നടപടിക്രമങ്ങളിലൂടെ നമുക്ക് നടക്കാം. ട്രേസിംഗ് ആരംഭിക്കുന്ന സംഭരിച്ച നടപടിക്രമത്തിന് നാല് ഓപ്ഷണൽ ഇൻപുട്ട് പാരാമീറ്ററുകൾ ഉണ്ട്. ആദ്യത്തെ രണ്ടെണ്ണം, @spid_filter, @dbid_filter എന്നിവ, ഒരു പ്രത്യേക സെർവർ പ്രക്രിയയുമായും (അതിന്റെ SPID മുഖേന തിരിച്ചറിഞ്ഞത്) ഒരു നിർദ്ദിഷ്ട ഡാറ്റാബേസുമായും ബന്ധപ്പെട്ട വിവരങ്ങൾ മാത്രമായി പരിമിതപ്പെടുത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഈ പരാമീറ്ററുകൾ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, എല്ലാ പ്രക്രിയകളിൽ നിന്നും ഡാറ്റാബേസുകളിൽ നിന്നും ട്രെയ്സ് ഡാറ്റ ശേഖരിക്കും. @email_address പാരാമീറ്റർ നിങ്ങളെ ഒരു ഇമെയിൽ വിലാസം നിയോഗിക്കാൻ അനുവദിക്കുന്നു, അത് ട്രേസിന്റെ പുരോഗതിയെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ അയയ്ക്കും. ഈ പരാമീറ്റർ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, sp_start_mytrace സ്ക്രീനിൽ വിവരങ്ങൾ മാത്രം പ്രദർശിപ്പിക്കും. ഇത് വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിലും വിലാസം തെറ്റായി നൽകിയിട്ടുണ്ടെങ്കിൽ, സംഭരിച്ച നടപടിക്രമം ഒരു പിശക് സന്ദേശം സൃഷ്ടിക്കുകയും അവസാനിപ്പിക്കുകയും ചെയ്യും. അവസാന പാരാമീറ്റർ, @filename, ട്രെയ്‌സിംഗ് സമയത്ത് ശേഖരിക്കുന്ന വിവരങ്ങൾ അയയ്‌ക്കുന്ന ഫയലിന്റെ പേര് വ്യക്തമാക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ്. ഈ പരാമീറ്റർ നിർവചിച്ചിട്ടില്ലാത്ത സാഹചര്യത്തിൽ, സ്ഥിരസ്ഥിതി വിവരങ്ങൾ c:\mytraceN.trc എന്ന ഫയലിൽ സ്ഥാപിക്കും, ഇവിടെ N എന്നത് ക്യൂ ഡിസ്ക്രിപ്റ്റർ നമ്പറാണ്. ട്രെയ്‌സ് ഡാറ്റ ഫയലുകൾക്ക് പേരിടുന്നതിനുള്ള ഒരു നിയമം നിർവചിക്കുന്ന ഈ കൺവെൻഷൻ, ഫലങ്ങൾ സ്വയം മാത്രം രേഖപ്പെടുത്തുന്നതിന് ഫയൽ ലോക്ക് ചെയ്യാൻ അവയിലൊന്നിനെ അനുവദിക്കാതെ ഒരേ സമയം ഒന്നിലധികം ട്രെയ്‌സുകൾ എടുക്കാൻ അനുവദിക്കുന്നു.

ട്രിഗർ പ്രവർത്തനം പരിശോധിക്കുന്നതിന്, ഫയൽ പ്രോപ്പർട്ടികൾ മാറ്റുക:

ആൾട്ടർ ഡാറ്റാബേസ് testdb ഫയലിൽ മാറ്റം വരുത്തുക (പേര് = `testdb_dat`, MAXSIZE = 30MB)

ഫയൽ പ്രോപ്പർട്ടികൾ മാറ്റിയതായി സൂചിപ്പിക്കുന്ന ഒരു സന്ദേശം നിങ്ങൾക്ക് ലഭിക്കും:

ഫയൽ പ്രോപ്പർട്ടികൾ മാറ്റി:
പ്രസ്താവന: ALTER DATABASE testdb മോഡിഫൈ ഫയൽ (NAME = `testdb_dat`,
MAXSIZE = 30MB)
NT ഉപയോക്തൃനാമം: Gandalf
അപേക്ഷയുടെ പേര്: MS SQL ക്വറി അനലൈസർ
SQL ഉപയോക്തൃനാമം: NA
സമയം: 2000-11-22 14:15:28

സ്തംഭനാവസ്ഥ സൃഷ്ടിക്കുന്നതിലേക്ക് നയിച്ച സംഭവങ്ങൾ എന്താണെന്ന് കണ്ടെത്തുന്നത് എല്ലായ്പ്പോഴും വളരെ ബുദ്ധിമുട്ടാണ്. എന്നിരുന്നാലും, "അന്വേഷണം" വളരെ എളുപ്പമാക്കാൻ കഴിയുന്ന പ്രത്യേക ഇവന്റുകൾ SQL പ്രൊഫൈലർ നൽകുന്നു. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ലോക്ക്:ഡെഡ്‌ലോക്ക് ഇവന്റിന്റെ സംഭവം കണ്ടെത്താനാകും. ഈ സംഭവത്തിന്റെ സംഭവം പറയുന്നു

ഒരു സ്തംഭനാവസ്ഥ ഉടലെടുത്തുവെന്ന്. ഇത് ഉപയോക്താവിനോട് സെർവർ പ്രോസസ്സ് ഐഡി (SPID), തടഞ്ഞ ഇടപാട് ഐഡി, ബ്ലോക്ക് സംഭവിച്ച സമയം, ആപ്ലിക്കേഷന്റെ പേര്, ഉപയോക്തൃ ഐഡി എന്നിവ പറയുന്നു. ലോക്ക്: ഒരു ബ്ലോക്ക് സംഭവിക്കുമ്പോഴെല്ലാം ജനറേറ്റ് ചെയ്യുന്ന ഡെഡ്‌ലോക്ക് ചെയിൻ ഇവന്റ് വളരെ സൗകര്യപ്രദമാണ്: പ്രോസസ്സ് ഐഡന്റിഫയറുകളും (SPID) ഇടപാടുകളും കണ്ടെത്താൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.

ഡെഡ്‌ലോക്കിൽ ഉൾപ്പെട്ടിരിക്കുന്ന ഇടപാടുകളുടെ ഐഡികൾ നിങ്ങൾക്ക് റെക്കോർഡ് ചെയ്യാം, തുടർന്ന് ട്രാൻസാക്ഷൻ ഐഡികൾ പ്രകാരം ട്രെയ്സ് ഫലങ്ങൾ ഗ്രൂപ്പുചെയ്യുകയും ആ ഇടപാടുകൾ മാത്രം വിശകലനം ചെയ്യുകയും ചെയ്യാം. മറ്റൊരു സമീപനം ട്രെയ്സ് ഫലങ്ങൾ ഒരു പട്ടികയിലേക്ക് അയയ്ക്കുന്നു. SPID നമ്പറോ ഇടപാട് ഐഡിയോ ഉപയോഗിച്ച് അത് ഫിൽട്ടർ ചെയ്യാൻ നിങ്ങൾക്ക് അന്വേഷണങ്ങൾ ഉപയോഗിക്കാം.

ഒരു ഡെഡ്‌ലോക്ക് സാഹചര്യം സൃഷ്ടിക്കുന്നതിന്, t1, t2 എന്നീ രണ്ട് പട്ടികകൾ സൃഷ്‌ടിക്കുക, അവയിൽ ഓരോന്നിനും ഒരു പൂർണ്ണസംഖ്യ കോളം മാത്രമേ ഉണ്ടാകൂ. മൂല്യം 1 അടങ്ങുന്ന ഓരോ പട്ടികയിലും ഒരു വരി നൽകുക. ഇനിപ്പറയുന്ന ഇവന്റുകൾ രേഖപ്പെടുത്തുന്ന ഒരു ട്രെയ്സ് നിർവചിക്കുക: ലോക്ക്: ഡെഡ്‌ലോക്ക്, ലോക്ക്: ഡെഡ്‌ലോക്ക് ചെയിൻ, കൂടാതെ ഓപ്പറേറ്റർ എക്‌സിക്യൂഷന്റെ (RPC, SP, SQL) അനുബന്ധ ആരംഭ, അവസാന ഇവന്റുകൾ. തടയുന്നതിനുള്ള ഉദ്ദേശിച്ച ഉറവിടത്തെ ആശ്രയിച്ച് തിരഞ്ഞെടുപ്പ് നടത്തണം. ഞങ്ങളുടെ ഉദാഹരണത്തിൽ, ഞങ്ങൾക്ക് SQL ഇവന്റുകൾ മാത്രമേ ആവശ്യമുള്ളൂ: StmtStarting, SQL:StmtCompleted.

ഡിഫോൾട്ട് ഡാറ്റ കോളങ്ങൾക്ക് പുറമേ, നിങ്ങൾക്ക് ഇഷ്ടമുള്ള ഇടപാട് ഐഡിയും കോളങ്ങളും ക്യാപ്‌ചർ ചെയ്യാൻ ഒരു കോളം ചേർക്കുക. നിങ്ങൾ പ്രവർത്തിക്കുന്ന ഡാറ്റാബേസിന്റെ ഐഡിയുമായി പൊരുത്തപ്പെടുന്നതിന് ട്രെയ്സ് ഫിൽട്ടർ സജ്ജമാക്കുക. അതിനുശേഷം, ക്വറി അനലൈസറിൽ നിന്ന് സെർവറിലേക്ക് രണ്ട് കണക്ഷനുകൾ തുറക്കുക. ആദ്യ കണക്ഷനിൽ ആയിരിക്കുമ്പോൾ, ചെയ്യുക:

ട്രാൻസാക്ഷൻ അപ്ഡേറ്റ് ആരംഭിക്കുക t1 സെറ്റ് കോൾ1 = 1

കണക്ഷൻ 2-ൽ, ഇനിപ്പറയുന്ന ഇടപാട് ആരംഭിക്കുക:

ഇടപാട് ആരംഭിക്കുക
t2 SET col1 = 1 അപ്‌ഡേറ്റ് ചെയ്യുക
t1 ൽ നിന്ന് * തിരഞ്ഞെടുക്കുക
ഇടപാട് നടത്തുക

അവസാനമായി, കണക്ഷൻ 1-ൽ, പ്രസ്താവനകൾ നടപ്പിലാക്കുക:

t2 ൽ നിന്ന് * തിരഞ്ഞെടുക്കുക
ഇടപാട് നടത്തുക

ട്രെയ്സ് നിർത്തി ട്രെയ്സ് ഫയൽ തുറക്കുക. ലോക്ക്: ഡെഡ്‌ലോക്ക് ചെയിൻ ഇവന്റുകൾക്കായി തിരയുക, അതിൽ ഉൾപ്പെട്ടിരിക്കുന്ന ഇടപാട് നമ്പറുകൾ രേഖപ്പെടുത്തുക. ഇടപാട് ഐഡികൾ പ്രകാരം ഔട്ട്‌പുട്ട് ഗ്രൂപ്പുചെയ്‌ത് അനുബന്ധ ഇടപാടുകൾ വികസിപ്പിക്കുക. ഔട്ട്‌പുട്ട് സ്‌ക്രീൻ 1-ൽ കാണിച്ചിരിക്കുന്നതിന് സമാനമായി കാണപ്പെടും.

SQL സെർവർ എന്റർപ്രൈസ് മാനേജറിൽ ഒരു വിസാർഡ് ഉൾപ്പെടുന്നു, അത് തടസ്സങ്ങളുടെ കാരണം കണ്ടെത്താൻ ഉപയോഗിക്കുന്നവ ഉൾപ്പെടെയുള്ള ട്രെയ്സ് സജ്ജീകരിക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു. ഒരു ട്രെയ്‌സ് നിർവചിക്കുന്നതിന് സൃഷ്‌ടിക്കുക ട്രേസ് വിസാർഡ് ഉപയോഗിക്കുന്നതിന്, എന്റർപ്രൈസ് മാനേജറിലേക്ക് ലോഗിൻ ചെയ്യുക, ടൂൾസ് മെനുവിൽ നിന്ന് വിസാർഡുകൾ തിരഞ്ഞെടുക്കുക, തുടർന്ന് മാനേജ്‌മെന്റ് വിഭാഗം തുറന്ന് ട്രേസ് വിസാർഡ് സൃഷ്‌ടിക്കുക തിരഞ്ഞെടുക്കുക.

അന്തിമ കുറിപ്പ്

SQL പ്രൊഫൈലറിന്റെ ട്രെയ്‌സ് റീപ്ലേ കഴിവുകൾ, SQL സെർവർ 7.0-ന്റെ വിപുലീകൃത ട്രേസ് സംഭരിച്ച നടപടിക്രമങ്ങൾ, നിങ്ങളുടെ ഡാറ്റാബേസുകൾ ഡീബഗ് ചെയ്യാൻ നിങ്ങളെ പ്രാപ്‌തമാക്കുന്നു. നിങ്ങളുടെ SQL സെർവർ പരിതസ്ഥിതിയുടെ അവസ്ഥ നിങ്ങൾ നിരീക്ഷിക്കുകയാണെങ്കിലും അല്ലെങ്കിൽ ആപ്ലിക്കേഷൻ പ്രകടന പ്രശ്നങ്ങൾ പരിഹരിക്കുകയാണെങ്കിലും, നിങ്ങളുടെ അറിവ് പ്രായോഗികമാക്കാനുള്ള സമയമാണിത്.

ഇറ്റ്സിക് ബെൻ-ഗാൻ [ഇമെയിൽ പരിരക്ഷിതം] MCDBA, MCSE+I, MCSD, MCT, SQL സെർവർ MVP സർട്ടിഫിക്കേഷനുകൾ ഉണ്ട്. ഇസ്രായേലിലെ ഹൈടെക് കോളേജിലെ എസ്‌ക്യുഎൽ സെർവർ കോഴ്‌സുകളുടെ സീനിയർ ലക്ചററും ഇസ്രായേലി എസ്‌ക്യുഎൽ സെർവർ യൂസർ ഗ്രൂപ്പിന്റെ ചെയർമാനുമാണ്.

ഈ പ്രഭാഷണത്തിൽ, "സംഭരിച്ച നടപടിക്രമങ്ങൾ സൃഷ്ടിക്കുകയും നിയന്ത്രിക്കുകയും ചെയ്യുക" എന്നതിൽ ഞങ്ങൾ ആരംഭിച്ച സംഭരിച്ച നടപടിക്രമങ്ങളുടെ പഠനം ഞങ്ങൾ തുടരും. Microsoft SQL സെർവർ ക്വറി അനലൈസറും SQL സെർവർ പ്രൊഫൈലറും ഉപയോഗിച്ച് സംഭരിച്ച നടപടിക്രമങ്ങളും മറ്റ് T-SQL പ്രസ്താവനകളും എങ്ങനെ വിശകലനം ചെയ്യാമെന്ന് നിങ്ങൾ പഠിക്കും. ഈ വിശകലനത്തിൽ നിന്ന്, T-SQL പ്രസ്താവനകൾ എത്രത്തോളം ഫലപ്രദമാണെന്ന് നിങ്ങൾക്ക് നിർണ്ണയിക്കാനാകും. കാര്യക്ഷമമായ ഒരു SQL സെർവർ അന്വേഷണം, പ്രോസസ്സ് ചെയ്ത വരികളുടെ എണ്ണം കുറയ്ക്കുന്നതിനും I/O ഓപ്പറേഷനുകളുടെ എണ്ണം കുറയ്ക്കുന്നതിനും ഉചിതമായ പ്രവർത്തനങ്ങളുടെ ഉചിതമായ ക്രമവും ഉചിതമായ സൂചികകളും ഉപയോഗിക്കുന്നു.

ക്വറി അനലൈസർ ഉപയോഗിച്ച്, ഒരു T-SQL സ്റ്റേറ്റ്‌മെന്റിനായി തിരഞ്ഞെടുത്ത എക്‌സിക്യൂഷൻ പ്ലാൻ നിങ്ങൾക്ക് കാണാൻ കഴിയും അന്വേഷണ ഒപ്റ്റിമൈസർ SQL സെർവർ ക്വറി ഒപ്റ്റിമൈസർഓരോ T-SQL പ്രസ്‌താവനയ്‌ക്കും ഏറ്റവും മികച്ച എക്‌സിക്യൂഷൻ പ്ലാനിനായി തിരയുന്ന ഒരു ആന്തരിക മൊഡ്യൂളാണ്. ക്വറി ഒപ്റ്റിമൈസർഓരോ T-SQL പ്രസ്താവനയും വിശകലനം ചെയ്യുന്നു, സാധ്യമായ നിരവധി എക്സിക്യൂഷൻ പ്ലാനുകൾ നോക്കുന്നു, ആവശ്യമായ വിഭവങ്ങളുടെയും പ്രോസസ്സിംഗ് സമയത്തിന്റെയും അടിസ്ഥാനത്തിൽ ഓരോ പ്ലാനിന്റെയും "ചെലവ്" വിലയിരുത്തുന്നു. ഏറ്റവും കുറഞ്ഞ ചെലവുള്ള പ്ലാൻ തിരഞ്ഞെടുത്തു. ലഭ്യമായ സ്ഥിതിവിവരക്കണക്കുകളുടെ അടിസ്ഥാനത്തിലാണ് ഓരോ പ്ലാനിന്റെയും വില നിശ്ചയിക്കുന്നത്, അവ സിസ്റ്റം ശേഖരിക്കുകയും കാലഹരണപ്പെട്ടതായിരിക്കാം. കാരണം നിങ്ങളുടെ ഡാറ്റാബേസിനെ കുറിച്ചും നിങ്ങളുടെ ഡാറ്റയെ കുറിച്ചും നിങ്ങൾക്ക് കൂടുതൽ അറിയാം അന്വേഷണ ഒപ്റ്റിമൈസർ, അപ്പോൾ നിങ്ങൾക്ക് അന്വേഷണ ഒപ്റ്റിമൈസറിനേക്കാൾ മികച്ച ഒരു പ്ലാൻ സൃഷ്ടിക്കാൻ കഴിഞ്ഞേക്കും. ക്വറി അനലൈസർ നിർമ്മിക്കുന്ന വിവരങ്ങൾ ഉപയോഗിച്ച്, ഒരു പ്രത്യേക പ്രസ്താവനയ്‌ക്കായുള്ള ക്വറി ഒപ്റ്റിമൈസറിന്റെ പ്ലാൻ ഫലപ്രദമാണോ എന്ന് നിങ്ങൾക്ക് നിർണ്ണയിക്കാനാകും, ഇല്ലെങ്കിൽ, അത് പരിഷ്‌ക്കരിച്ച് അല്ലെങ്കിൽ SQL സൂചന ഉപയോഗിച്ച് നിങ്ങൾക്ക് ആ പ്രസ്താവന ഒപ്റ്റിമൈസ് ചെയ്യാൻ ശ്രമിക്കാം. ഈ പ്രഭാഷണത്തിൽ, ക്വറി അനലൈസർ എങ്ങനെ ഉപയോഗിക്കണമെന്ന് പഠിക്കുന്നതിനൊപ്പം ടി-എസ്‌ക്യുഎൽ പ്രസ്താവനകൾ എങ്ങനെ ഒപ്റ്റിമൈസ് ചെയ്യാമെന്ന് നിങ്ങൾ പഠിക്കും.

പ്രൊഫൈലർ ഉപയോഗിച്ച്, നിങ്ങളുടെ SQL സെർവർ സിസ്റ്റത്തിനുള്ളിലെ പ്രവർത്തനങ്ങൾ വിശകലനം ചെയ്യാൻ നിങ്ങൾക്ക് കഴിയും, ഏത് SQL പ്രസ്താവനകളും സംഭരിച്ച നടപടിക്രമങ്ങളും അനാവശ്യമായ സിസ്റ്റം ഉറവിടങ്ങളാണ് ഉപയോഗിക്കുന്നത്. ഈ വിവരങ്ങൾ ഉപയോഗിച്ച്, നിങ്ങളുടെ ട്യൂണിംഗ് ശ്രമങ്ങൾ പ്രാഥമികമായി ഈ പ്രസ്താവനകളിലും സംഭരിച്ച നടപടിക്രമങ്ങളിലും കേന്ദ്രീകരിക്കാൻ കഴിയും. പ്രൊഫൈലർ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് വിവരിക്കുന്നതിനൊപ്പം, പ്രൊഫൈലർ ഉപയോഗിച്ച് ലഭിക്കുന്ന വിവരങ്ങൾ എങ്ങനെ ഏറ്റവും ഫലപ്രദമായി ഉപയോഗിക്കാമെന്നും ഈ പ്രഭാഷണം കാണിക്കുന്നു.

SQL ക്വറി അനലൈസർ ഉപയോഗിക്കുന്നു

ക്വറി അനലൈസർ യൂട്ടിലിറ്റി മൈക്രോസോഫ്റ്റ് SQL സെർവർ 2000 ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു

മുൻ ലക്കങ്ങളിൽ (കമ്പ്യൂട്ടർപ്രസ്സ് നമ്പർ 1, 3-5, 7, 9'2006 കാണുക) മൈഗ്രേഷൻ അല്ലെങ്കിൽ അപ്‌ഗ്രേഡ് വഴി SQL സെർവർ 2005-ലേക്കുള്ള പരിവർത്തനവുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങളും SQL സെർവർ 2005 ഉപയോഗിക്കുന്നതിനുള്ള പ്രധാന സാഹചര്യങ്ങളും ഞങ്ങൾ ചർച്ച ചെയ്തു. ഈ ലേഖനം വിവിധ അന്വേഷണ ഒപ്റ്റിമൈസേഷൻ രീതികളും പ്രകടന പ്രശ്നങ്ങൾ കണ്ടെത്തുന്നതുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള സാധ്യമായ സമീപനങ്ങളും ചർച്ച ചെയ്യും.

ചലനാത്മകവും നിരന്തരം മാറിക്കൊണ്ടിരിക്കുന്നതുമായ അന്തരീക്ഷത്തിൽ പ്രവർത്തിക്കുന്ന സേവനങ്ങൾ SQL സെർവർ നൽകുന്നു. അതിനാൽ, സെർവർ പ്രവർത്തനത്തിന്റെ പതിവ് നിരീക്ഷണം അവ സംഭവിക്കുന്ന ഘട്ടത്തിൽ പ്രശ്നങ്ങൾ തിരിച്ചറിയാനും അവ ഇല്ലാതാക്കുന്നതിനുള്ള നടപടികൾ ഉടനടി സ്വീകരിക്കാനും നിങ്ങളെ അനുവദിക്കുന്നു. സ്ഥിതിവിവരക്കണക്കുകളുടെ ശേഖരണത്തോടെ, സെർവർ പ്രവർത്തനത്തിലെ പ്രധാന പ്രവണതകളെക്കുറിച്ചുള്ള ഒരു ധാരണ ദൃശ്യമാകുന്നു. ഡാറ്റയുടെ പതിവ് ശേഖരണം - സെർവർ പ്രശ്‌നങ്ങളൊന്നുമില്ലാതെ പ്രവർത്തിക്കുന്ന സന്ദർഭങ്ങളിൽ പോലും - സെർവർ പെർഫോമൻസ് ബേസ്‌ലൈൻ എന്ന് വിളിക്കപ്പെടുന്നവ സൃഷ്ടിക്കും, ഇത് സെർവർ പ്രകടനത്തിന്റെ കൂടുതൽ അളവുകൾക്ക് ഒരു റഫറൻസായി വർത്തിക്കും.

നിങ്ങൾക്ക് ഒരു അടിസ്ഥാന പ്രകടന മാനദണ്ഡം ലഭിച്ചുകഴിഞ്ഞാൽ, വ്യത്യസ്ത സാഹചര്യങ്ങളിൽ അന്വേഷണ പ്രകടനം വിശകലനം ചെയ്യാനുള്ള കഴിവ് നിങ്ങൾക്കുണ്ട്. വിവിധ ഒപ്റ്റിമൈസേഷൻ നടപടിക്രമങ്ങൾ നടത്തുന്നതിന് മുമ്പും സമയത്തും ശേഷവും കുറഞ്ഞത് അളവുകൾ എടുക്കാൻ ശുപാർശ ചെയ്യുന്നു, ഇത് എടുത്ത പ്രവർത്തനങ്ങളുടെ വിജയം ഉറപ്പാക്കും. കൂടാതെ, പതിവ് സ്റ്റാൻഡേർഡ് പ്രകടന അളവുകൾ (പ്രതിവാര, പ്രതിമാസ, ത്രൈമാസ, മുതലായവ) സെർവർ പ്രകടനത്തിന്റെ വ്യക്തമായ ചിത്രം നൽകും.

സെർവറിന്റെ പീക്ക് ലോഡിന്റെ സമയവും അതിന്റെ പ്രവർത്തനരഹിതമായ സമയവും (പീക്ക്, ഓഫ്-പീക്ക് മണിക്കൂർ), അഭ്യർത്ഥനകളുടെയും കമാൻഡുകളുടെയും ബാച്ചുകളുടെ പ്രതികരണ സമയം, ബാക്കപ്പ് പകർപ്പുകൾ സൃഷ്ടിക്കുന്നതിനും ഡാറ്റ പുനഃസ്ഥാപിക്കുന്നതിനുമുള്ള നടപടിക്രമങ്ങളുടെ നിർവ്വഹണ സമയം മുതലായവ നിർണ്ണയിക്കാൻ അടിസ്ഥാന മാനദണ്ഡം ഉപയോഗിക്കാം. .

അന്വേഷണ പ്രകടനം

ചോദ്യ പ്രകടനം രണ്ട് വീക്ഷണകോണിൽ നിന്ന് പരിഗണിക്കണം - ഒരു പ്രത്യേക ചോദ്യം എക്സിക്യൂട്ട് ചെയ്യാൻ ഉപയോഗിക്കുന്ന ഉറവിടങ്ങൾ (അന്വേഷണ നിർവ്വഹണ സമയത്ത് നമ്മൾ ആക്‌സസ് ചെയ്യുന്ന ഒബ്‌ജക്റ്റുകൾ, ബ്ലോക്ക് ചെയ്‌ത ഒബ്‌ജക്റ്റുകൾ മുതലായവ റിസോഴ്‌സുകളിൽ ഉൾപ്പെടുന്നു), ചോദ്യം എക്‌സിക്യൂട്ട് ചെയ്യുന്നതിന് ചെലവഴിക്കുന്ന സമയം. - ഇത് കുറച്ച് സമയം ഒരു അഭ്യർത്ഥന പൂർത്തിയാക്കാൻ എടുക്കുന്നു, അഭ്യർത്ഥന പ്രക്രിയയിൽ ഞങ്ങൾ മറ്റ് അഭ്യർത്ഥനകളും ഇടപാടുകളും തടയാനുള്ള സാധ്യത കുറവാണ്.

SQL സെർവർ 2005-ൽ അന്വേഷണ പ്രകടനം അളക്കുന്നതിനുള്ള രണ്ട് പ്രാഥമിക ഉപകരണങ്ങൾ ഉൾപ്പെടുന്നു - പെർഫോമൻസ് മോണിറ്റർ, SQL സെർവർ പ്രൊഫൈലർ. കൂടാതെ, അന്വേഷണങ്ങളുടെ നിർവ്വഹണത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ ലഭിക്കുന്നതിന്, നിങ്ങൾക്ക് സെറ്റ് സ്റ്റാറ്റിസ്റ്റിക്സ് ഗ്രൂപ്പിൽ നിന്ന് ടി-എസ്‌ക്യുഎൽ ഭാഷാ നിർമ്മാണങ്ങൾ ഉപയോഗിക്കാം - സെറ്റ് സ്റ്റാറ്റിസ്റ്റിക്സ് ഐഒ, സെറ്റ് സ്റ്റാറ്റിസ്റ്റിക്സ് പ്രൊഫൈൽ, സെറ്റ് സ്റ്റാറ്റിസ്റ്റിക്സ് സമയം - കൂടാതെ ഡൈനാമിക് കാഴ്‌ചകൾ (ഡൈനാമിക് മാനേജ്‌മെന്റ് കാഴ്ചകൾ). അടുത്തതായി, പെർഫോമൻസ് മോണിറ്ററും SQL സെർവർ പ്രൊഫൈലറും കൂടുതൽ വിശദമായി ഉപയോഗിക്കുന്നത് ഞങ്ങൾ നോക്കാം.

പെർഫോമൻസ് മോണിറ്റർ ഉപയോഗിക്കുന്നു

മെമ്മറി, നെറ്റ്‌വർക്ക് ഉപയോഗം, പ്രോസസ്സർ സമയം, SQL സെർവറിന്റെയും മറ്റ് സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നങ്ങളുടെയും പ്രവർത്തനവുമായി ബന്ധപ്പെട്ട വിവരങ്ങൾ എന്നിവയുൾപ്പെടെയുള്ള ഹാർഡ്‌വെയർ, സോഫ്റ്റ്‌വെയർ ഉറവിടങ്ങളുടെ പ്രകടനം വിശകലനം ചെയ്യാൻ പെർഫോമൻസ് മോണിറ്റർ യൂട്ടിലിറ്റി ഉപയോഗിക്കുന്നു - Microsoft Message Queuing (MSMQ), Microsoft .NET Framework ഒപ്പം മൈക്രോസോഫ്റ്റ് എക്സ്ചേഞ്ച് സെർവറും. പ്രത്യേകിച്ചും, ലോക്കുകളും ഇടപാടുകളും പോലുള്ള SQL സെർവർ ഉറവിടങ്ങൾ നിരീക്ഷിക്കാൻ നിങ്ങൾക്ക് പെർഫോമൻസ് മോണിറ്റർ ഉപയോഗിക്കാം.

ഞങ്ങൾക്ക് താൽപ്പര്യമുള്ള കൗണ്ടറുകൾ ചേർക്കുന്നതിന്, നിങ്ങൾ ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ ചെയ്യണം:

  1. മെനുവിൽ ആരംഭിക്കുകഒരു ടീം തിരഞ്ഞെടുക്കുക ഓടുകഡയലോഗ് പാനലിലും ഓടുകനൽകുക പെർഫ്മോൺ. ഇത് പെർഫോമൻസ് മൈക്രോസോഫ്റ്റ് മാനേജ്മെന്റ് കൺസോൾ (എംഎംസി) സമാരംഭിക്കും, നിരവധി പ്രകടന കൗണ്ടറുകളുടെ ഗ്രാഫിക്കൽ പ്രാതിനിധ്യം പ്രദർശിപ്പിക്കും.
  2. ജനലിൽ സിസ്റ്റം മോണിറ്റർചാർട്ടിലെ വലത് ബട്ടൺ അമർത്തി കമാൻഡ് തിരഞ്ഞെടുക്കുക കൗണ്ടറുകൾ ചേർക്കുക.
  3. ഡയലോഗ് പാനലിൽ കൗണ്ടറുകൾ ചേർക്കുകഞങ്ങൾക്ക് താൽപ്പര്യമുള്ള കമ്പ്യൂട്ടറും നിരീക്ഷിക്കേണ്ട വസ്തുവും തിരഞ്ഞെടുക്കുക. SQL സെർവറുമായി ബന്ധപ്പെട്ട ഒബ്‌ജക്‌റ്റുകൾ അതിനനുസരിച്ച് പ്രിഫിക്‌സ് ചെയ്‌തിരിക്കുന്നു.
  4. കൗണ്ടറുകൾ തിരഞ്ഞെടുക്കുന്നതിന്, നിങ്ങൾ ഏതെങ്കിലും ഓപ്ഷൻ തിരഞ്ഞെടുക്കണം എല്ലാ കൗണ്ടറുകളും, അല്ലെങ്കിൽ ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റിൽ നിന്ന് ഒന്നോ അതിലധികമോ കൗണ്ടറുകൾ (ചിത്രം 1).
  1. ഇതിനുശേഷം, നിങ്ങൾ ഡാറ്റാബേസ് സംഭവങ്ങൾ തിരഞ്ഞെടുക്കണം അല്ലെങ്കിൽ ഓപ്ഷൻ പ്രവർത്തനക്ഷമമാക്കണം എല്ലാ സന്ദർഭങ്ങളും.
  2. ചേർക്കുക, അടയ്ക്കുക ബട്ടണുകളിൽ ക്ലിക്ക് ചെയ്യുന്നത് കൗണ്ടറുകൾ ചേർക്കുന്നത് പൂർത്തിയാകും.

ഞങ്ങൾക്ക് താൽപ്പര്യമുള്ള കൗണ്ടറുകൾ ചേർത്ത ശേഷം, നമുക്ക് അവയുടെ മൂല്യങ്ങൾ ഒരു ഗ്രാഫിന്റെ രൂപത്തിൽ കാണാനോ ഒരു ട്രെയ്സ് ഫയലിൽ സംരക്ഷിക്കാനോ കഴിയും (ചിത്രം 2).

പിന്നീടുള്ള സാഹചര്യത്തിൽ, നിങ്ങൾ ഘടകം വികസിപ്പിക്കേണ്ടതുണ്ട് പ്രകടന ലോഗുകളും അലേർട്ടുകളുംകമാൻഡിൽ ക്ലിക്ക് ചെയ്യുക പുതിയ ലോഗ് ക്രമീകരണങ്ങൾ. ഡയലോഗ് പാനലിൽ പുതിയ ലോഗ് ക്രമീകരണങ്ങൾനിങ്ങൾ ഒരു പ്രോട്ടോക്കോൾ പേര് വ്യക്തമാക്കുകയും ശരി ക്ലിക്കുചെയ്യുകയും വേണം. ഡയലോഗ് പാനലിൽ അടുത്തത് കൌണ്ടർലോഗ് നെയിംഞങ്ങൾ ഒരു ടീമിനെ തിരഞ്ഞെടുക്കുന്നു കൗണ്ടറുകൾ ചേർക്കുക. ഞങ്ങൾക്ക് താൽപ്പര്യമുള്ള കൗണ്ടറുകൾ ചേർക്കുന്നത് മുകളിൽ വിവരിച്ചതുപോലെ തന്നെ സംഭവിക്കുന്നു. ധാരാളം കൗണ്ടറുകൾ സിസ്റ്റം പ്രകടനത്തെ ബാധിച്ചേക്കാമെന്നത് ശ്രദ്ധിക്കുക. കൗണ്ടറുകൾ ചേർക്കുന്നത് പൂർത്തിയാകുമ്പോൾ, ബട്ടൺ ക്ലിക്ക് ചെയ്യുക അടയ്ക്കുക.

ടാബിൽ ജനറൽഅധ്യായത്തിൽ ഓരോ സാമ്പിൾ ഡാറ്റയുംനിങ്ങൾക്ക് സാമ്പിൾ ഫ്രീക്വൻസി (ഡാറ്റ ഏറ്റെടുക്കൽ) സജ്ജമാക്കാൻ കഴിയും. ഇടത്തരം ആവൃത്തിയിൽ ആരംഭിക്കാൻ ശുപാർശ ചെയ്യുന്നു, ഉദാഹരണത്തിന് ഓരോ 5 മിനിറ്റിലും ഒരിക്കൽ, തുടർന്ന് ആവശ്യമെങ്കിൽ അത് കുറയ്ക്കുകയോ വർദ്ധിപ്പിക്കുകയോ ചെയ്യുക. സാംപ്ലിംഗ് ഇടവേള ചെറുതാകുമ്പോൾ, കൂടുതൽ സിസ്റ്റവും ഡിസ്ക് ഉറവിടങ്ങളും ആവശ്യമാണെന്ന് ദയവായി ശ്രദ്ധിക്കുക. മീറ്റർ ക്വാണ്ടൈസേഷൻ കാലയളവിനേക്കാൾ കുറഞ്ഞ ഇടവേളകൾ തെറ്റായ ഡാറ്റാ ഡിസ്പ്ലേയ്ക്ക് കാരണമായേക്കാമെന്ന് ഓർമ്മിക്കേണ്ടതാണ്. ടാബിൽ ഫയലുകൾ ലോഗ് ചെയ്യുകനിങ്ങൾക്ക് പ്രോട്ടോക്കോൾ ഫയലിന്റെ പ്രോപ്പർട്ടികൾ ക്രമീകരിക്കാൻ കഴിയും, കൂടാതെ പട്ടികഒരു നിരീക്ഷണ ഷെഡ്യൂൾ സജ്ജീകരിച്ചിരിക്കുന്നു. ശരി ബട്ടണിൽ ക്ലിക്കുചെയ്യുന്നത് ഡാറ്റ ശേഖരണത്തിന്റെ തുടക്കത്തിനായി ഒരു പ്രോട്ടോക്കോൾ സൃഷ്ടിക്കുന്നതിന് കാരണമാകുന്നു (ചിത്രം 3).

ലോഗിംഗ് സ്വമേധയാ പൂർത്തിയാക്കാൻ, നിങ്ങൾ ഘടകത്തിലെ വലത് ബട്ടൺ അമർത്തേണ്ടതുണ്ട് കൌണ്ടർ ലോഗുകൾഒപ്പം ഒരു ടീമിനെ തെരഞ്ഞെടുക്കുക നിർത്തുക.

പെർഫോമൻസ് മോണിറ്ററിലെ ലോഗ് ഫയലിൽ ശേഖരിച്ച ഡാറ്റ കാണുന്നതിന്, നിങ്ങൾ ഘടകം തിരഞ്ഞെടുക്കേണ്ടതുണ്ട് സിസ്റ്റം മോണിറ്റർ, ടാസ്ക്ബാറിൽ - കമാൻഡ് ലോഗ് ഡാറ്റ കാണുക, ഡയലോഗ് പാനലിൽ സിസ്റ്റം മോണിറ്റർ പ്രോപ്പർട്ടികൾടാബിൽ ഉറവിടംലോഗ് ഫയലിന്റെ പേര് വ്യക്തമാക്കുക.

പ്രകടന പ്രശ്നങ്ങൾ തിരിച്ചറിയാൻ സഹായിക്കുന്ന ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്ന പെർഫോമൻസ് മോണിറ്റർ കൗണ്ടറുകൾ ഇനിപ്പറയുന്ന വിഭാഗങ്ങളായി തിരിച്ചിരിക്കുന്നു:

  • ഡാറ്റ ആക്സസ് - SQL സെർവർ തന്നെ ഉപയോഗിക്കുന്ന ഡാറ്റ ആക്സസ് രീതികൾ ഓഡിറ്റ് ചെയ്യാൻ, ഒബ്ജക്റ്റ് ഉപയോഗിക്കുന്നു SQLServer:ആക്സസ് രീതികൾ;
  • സ്ഥിതിവിവരക്കണക്കുകൾ - ചോദ്യങ്ങളുടെ സമാഹാരവും പുനഃസംയോജനവും നിരീക്ഷിക്കാൻ ഒബ്ജക്റ്റ് ഉപയോഗിക്കുന്നു SQLServer:SQL സ്ഥിതിവിവരക്കണക്കുകൾ. SQL സെർവർ ചോദ്യങ്ങൾ എത്ര വേഗത്തിലും കാര്യക്ഷമമായും പ്രോസസ്സ് ചെയ്യുന്നു എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഇത് നൽകുന്നു;
  • ഇടപാടുകൾ - ഒബ്ജക്റ്റ്-നിർദ്ദിഷ്ട കൗണ്ടറുകൾ സെക്കൻഡിലെ ഇടപാടുകളുടെ എണ്ണം നിർണ്ണയിക്കാൻ ഉപയോഗിക്കുന്നു SQLServer:Databasesഒപ്പം SQLServer:ഇടപാടുകൾ;
  • ലോക്കുകൾ - ചില തരം റിസോഴ്സുകളിൽ സ്ഥാപിച്ചിരിക്കുന്ന SQL സെർവർ ലോക്കുകൾ ഓഡിറ്റ് ചെയ്യാൻ ഒബ്ജക്റ്റ് ഉപയോഗിക്കുന്നു SQLServer:Locks(പട്ടിക 1).

പട്ടിക 1. SQL സെർവർ പ്രൊഫൈലർ കൗണ്ടറുകൾ

കൌണ്ടർ പേര്

വിവരണം

ഒരു സെക്കൻഡിൽ സൂചികകൾക്കായുള്ള ശ്രേണി സ്കാനുകളുടെ എണ്ണം കണക്കാക്കുന്നു

അവസാന സെക്കൻഡിൽ പൂർത്തിയാക്കിയ മുഴുവൻ സ്കാനുകളുടെയും എണ്ണം കണക്കാക്കുന്നു

സൂചിക തിരയലുകൾ/സെക്കൻഡ്

കഴിഞ്ഞ സെക്കൻഡിലെ സൂചിക തിരയലുകളുടെ എണ്ണം കണക്കാക്കുന്നു

ടേബിൾ ലോക്ക് വർദ്ധനവ്/സെക്കൻഡ്

ഒരു മേശയിലെ പൂട്ടുകളുടെ എണ്ണം കണക്കാക്കുന്നു

വർക്ക്‌ടേബിളുകൾ സൃഷ്‌ടിച്ചു/സെക്കൻഡ്

അവസാന സെക്കൻഡിൽ സൃഷ്ടിച്ച വർക്ക്ഷീറ്റുകളുടെ എണ്ണം കണക്കാക്കുന്നു

ബാച്ച് അഭ്യർത്ഥനകൾ/സെക്കൻഡ്

ഒരു സെക്കൻഡിൽ ട്രാൻസാക്റ്റ്-എസ്‌ക്യുഎൽ കമാൻഡ് ബാച്ചുകളുടെ എണ്ണം കണക്കാക്കുന്നു. ഉയർന്ന പാക്കറ്റ് കൗണ്ട് അർത്ഥമാക്കുന്നത് നല്ല ത്രൂപുട്ട് എന്നാണ്

SQL സമാഹാരങ്ങൾ/സെക്കൻഡ്

ഒരു സെക്കൻഡിലെ ചോദ്യ സമാഹാരങ്ങളുടെ എണ്ണം കണക്കാക്കുന്നു. ഉപയോക്താവ് അടിസ്ഥാന പ്രവർത്തനങ്ങൾ നടത്തിയതിന് ശേഷം ഈ കൗണ്ടറിന്റെ മൂല്യം ഏതാണ്ട് സ്ഥിരമായിരിക്കണം

SQL റീ-കംപൈലേഷനുകൾ/സെക്കൻഡ്

ഒരു സെക്കൻഡിൽ അന്വേഷണ പുനഃസമാഹരണങ്ങളുടെ എണ്ണം കണക്കാക്കുന്നു

SQLServer:Databases object. ഇടപാടുകൾ/സെക്കൻഡ് കൗണ്ടർ

അവസാന നിമിഷത്തിൽ ഡാറ്റാബേസിൽ ആരംഭിച്ച ഇടപാടുകളുടെ എണ്ണം കണക്കാക്കുന്നു

SQLServer:Transactions object. ഏറ്റവും ദൈർഘ്യമേറിയ ഇടപാട് സമയ കൗണ്ടർ

മറ്റേതൊരു നിലവിലെ ഇടപാടുകളേക്കാളും സജീവമായ ഇടപാട് ആരംഭിച്ചതിന് ശേഷമുള്ള സെക്കൻഡുകളുടെ എണ്ണം കണക്കാക്കുന്നു. ഈ കൗണ്ടർ വളരെ ദൈർഘ്യമേറിയ ഇടപാട് കാണിക്കുകയാണെങ്കിൽ, ഈ ഇടപാടിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ ലഭിക്കുന്നതിന് സിസ്റ്റം സംഭരിച്ച നടപടിക്രമം sys.dm_tran_active_transactions() ഉപയോഗിക്കുക

SQLServer:Transactions object. വൈരുദ്ധ്യ അനുപാത കൗണ്ടർ അപ്ഡേറ്റ് ചെയ്യുക

അവസാന സെക്കന്റ് ഡാറ്റ അപ്ഡേറ്റ് വൈരുദ്ധ്യങ്ങൾ പരിഹരിക്കാൻ സ്നാപ്പ്ഷോട്ട് ഐസൊലേഷൻ ഉപയോഗിക്കുന്ന ഇടപാടുകളുടെ ശതമാനം കണക്കാക്കുന്നു

ശരാശരി കാത്തിരിപ്പ് സമയം (മി.സെ.)

കാത്തിരിപ്പിന് കാരണമാകുന്ന ഓരോ ലോക്ക് അഭ്യർത്ഥനയുടെയും ശരാശരി കാത്തിരിപ്പ് സമയം കണക്കാക്കുന്നു

ലോക്ക് അഭ്യർത്ഥനകൾ/സെക്കൻഡ്

ഒരു സെക്കൻഡിൽ ലോക്കുകളുടെയും ലോക്ക് പരിവർത്തനങ്ങളുടെയും എണ്ണം കണക്കാക്കുന്നു

ലോക്ക് കാത്തിരിപ്പ് സമയം (മിസെ)

അവസാന സെക്കൻഡിൽ ലോക്കുകൾക്കായുള്ള മൊത്തം കാത്തിരിപ്പ് കണക്കാക്കുന്നു

കാത്തിരിപ്പിന് കാരണമായ ഒരു സെക്കൻഡിൽ ലോക്ക് അഭ്യർത്ഥനകളുടെ എണ്ണം കണക്കാക്കുന്നു

അന്വേഷണ പ്രകടനം അളക്കാൻ നിങ്ങൾക്ക് ഉപയോഗിക്കാവുന്ന രണ്ടാമത്തെ യൂട്ടിലിറ്റി SQL സെർവർ പ്രൊഫൈലർ ആണ്. അടുത്തതായി, ഇത് ഉപയോഗിക്കുന്നതിനുള്ള പ്രധാന വഴികൾ നോക്കാം.

SQL സെർവർ പ്രൊഫൈലർ ഉപയോഗിക്കുന്നു

സംഭരിച്ച നടപടിക്രമങ്ങളുടെയും ട്രാൻസാക്റ്റ്-എസ്‌ക്യുഎൽ കമാൻഡ് ബാച്ചുകളുടെയും ഭാഗമായ വ്യക്തിഗത അന്വേഷണങ്ങളുടെയും അന്വേഷണങ്ങളുടെയും പ്രകടനം അളക്കാൻ SQL സെർവർ പ്രൊഫൈലർ യൂട്ടിലിറ്റി ഉപയോഗിക്കുന്നു. ഒരു വ്യക്തിഗത കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ ചെലവഴിച്ച സമയം, ഒരു കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിനുള്ള തടയൽ സമയം, എക്സിക്യൂഷൻ പ്ലാൻ എന്നിവ ഉൾപ്പെടെയുള്ള പ്രകടന വിവരങ്ങൾ ശേഖരിക്കാൻ ഇത് ഉപയോഗിക്കാം.

ഒരു പുതിയ പ്രൊഫൈൽ സൃഷ്ടിക്കുന്നതിന്, നിങ്ങൾ ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ പൂർത്തിയാക്കണം:

  1. SQL സെർവർ പ്രൊഫൈലർ സമാരംഭിക്കുക ( Microsoft SQL സെർവർ 2005 => പ്രകടന ഉപകരണങ്ങൾ => SQL സെർവർ പ്രൊഫൈലർ).
  2. മെനുവിൽ ഫയൽഒരു ടീം തിരഞ്ഞെടുക്കുക പുതിയ ട്രെയ്സ്.
  3. ഡയലോഗ് പാനലിൽ സെർവറിലേക്ക് ബന്ധിപ്പിക്കുകആവശ്യമായ സെർവർ തിരഞ്ഞെടുത്ത് ബട്ടൺ ക്ലിക്ക് ചെയ്യുക ബന്ധിപ്പിക്കുക.
  4. ഡയലോഗ് പാനലിൽ ട്രെയ്സ് പ്രോപ്പർട്ടികൾനിങ്ങൾ ഒരു പ്രൊഫൈൽ പേര് സജ്ജീകരിക്കേണ്ടതുണ്ട് (ട്രേസ് നാമം), കൂടാതെ പട്ടികയിൽ ടെംപ്ലേറ്റ് ഉപയോഗിക്കുകലഭ്യമായ ടെംപ്ലേറ്റുകളിൽ ഒന്ന് തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ ശൂന്യം, ടെംപ്ലേറ്റ് ഉപയോഗിച്ചിട്ടില്ലെങ്കിൽ.
  5. പ്രൊഫൈലിംഗ് ഫലങ്ങൾ സംരക്ഷിക്കാൻ, നിങ്ങൾ ഓപ്ഷൻ തിരഞ്ഞെടുക്കണം ഫയലിലേക്ക് സംരക്ഷിക്കുകഒരു ഫയലിലേക്ക് ഡാറ്റ എഴുതുന്നതിനും പരമാവധി ഫയൽ വലുപ്പം വ്യക്തമാക്കുന്നതിനും (സ്ഥിര മൂല്യം 5 MB ആണ്), ഓപ്ഷണലായി നിങ്ങൾക്ക് ഓപ്ഷൻ പ്രവർത്തനക്ഷമമാക്കാം ഫയൽ റോൾഓവർ പ്രവർത്തനക്ഷമമാക്കുകനിർദ്ദിഷ്ട പ്രൊഫൈൽ വലുപ്പത്തിൽ എത്തുമ്പോൾ ഒരു പുതിയ ഫയൽ സ്വയമേവ സൃഷ്ടിക്കാൻ. ഒരു ഡാറ്റാബേസ് പട്ടികയിൽ ഡാറ്റ സംരക്ഷിക്കുക എന്നതാണ് രണ്ടാമത്തെ ഓപ്ഷൻ (ടേബിളിലേക്ക് സംരക്ഷിക്കുക)- ഓപ്ഷൻ പരമാവധി വരികൾ സജ്ജമാക്കുകപരമാവധി എണ്ണം റെക്കോർഡുകൾ സജ്ജമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
  6. ട്രെയ്‌സിംഗിനായി അവസാന സമയം സജ്ജീകരിക്കുന്നതിന്, നിങ്ങൾക്ക് ഓപ്ഷൻ ഉപയോഗിക്കാം ട്രെയ്സ് സ്റ്റോപ്പ് സമയം പ്രവർത്തനക്ഷമമാക്കുക(ചിത്രം 4).

ഒരു പ്രൊഫൈലിനായി ഇവന്റുകളും ഡാറ്റ കോളങ്ങളും സജ്ജീകരിക്കുന്നതിന്, നിങ്ങൾ ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ പൂർത്തിയാക്കേണ്ടതുണ്ട്:

  1. ഡയലോഗ് പാനലിൽ ട്രെയ്സ് പ്രോപ്പർട്ടികൾടാബിലേക്ക് പോകുക ഇവന്റുകൾ തിരഞ്ഞെടുക്കൽ.
  2. ഇവന്റ് ക്ലാസ് ടേബിൾ ഉപയോഗിച്ച് ഒരു പ്രൊഫൈലിൽ നിന്ന് ഇവന്റുകൾ ചേർക്കുക അല്ലെങ്കിൽ നീക്കം ചെയ്യുക.
  3. ലഭ്യമായ എല്ലാ ഇവന്റുകളുടെയും ഒരു ലിസ്റ്റ് ലഭിക്കാൻ, ഓപ്ഷൻ പ്രവർത്തനക്ഷമമാക്കുക എല്ലാ ഇവന്റുകളും കാണിക്കുക(ചിത്രം 5).

പട്ടികയിൽ ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്ന SQL സെർവർ പ്രൊഫൈലർ ഇവന്റുകൾ പട്ടിക 2 പട്ടികപ്പെടുത്തുന്നു. പ്രകടന കൗണ്ടറുകൾ പോലെ, SQL സെർവർ പ്രൊഫൈലർ ഇവന്റുകൾ നിരവധി വിഭാഗങ്ങളായി പെടുന്നു, അവയിൽ ചിലത് ഞങ്ങളുടെ ഉദ്ദേശ്യങ്ങൾക്ക് താൽപ്പര്യമുള്ളവയാണ്.

പട്ടിക 2. SQL സെർവർ പ്രൊഫൈലർ ഇവന്റുകൾ

ഇവന്റിന്റെ പേര്

വിവരണം

വിദൂര നടപടിക്രമ കോൾ എക്‌സിക്യൂഷൻ പൂർത്തിയാകുമ്പോൾ ഈ ഇവന്റ് സംഭവിക്കുന്നു.

സംഭരിച്ച നടപടിക്രമം നിർവ്വഹണം പൂർത്തിയാകുമ്പോൾ ഈ ഇവന്റ് വെടിവയ്ക്കുന്നു.

SP: Stmt Completed

സംഭരിച്ച നടപടിക്രമത്തിനുള്ളിൽ ട്രാൻസാക്റ്റ്-എസ്‌ക്യുഎൽ കമാൻഡുകളിലൊന്നിന്റെ നിർവ്വഹണം പൂർത്തിയാകുമ്പോൾ ഈ ഇവന്റ് സംഭവിക്കുന്നു.

SQL: Stmt Completed

ഒരു ട്രാൻസാക്റ്റ്-എസ്‌ക്യുഎൽ കമാൻഡ് പൂർത്തിയാകുമ്പോൾ ഈ ഇവന്റ് സംഭവിക്കുന്നു.

SQL:ബാച്ച് പൂർത്തിയായി

Transact-SQL കമാൻഡുകളുടെ ഒരു ബാച്ച് പൂർത്തിയാകുമ്പോൾ ഈ ഇവന്റ് സംഭവിക്കുന്നു.

ഒരു ഇടപാട് ഒരു റിസോഴ്‌സിൽ ഒരു ലോക്ക് നേടുമ്പോൾ ഈ ഇവന്റ് പ്രവർത്തനക്ഷമമാകും.

ഒരു ഇടപാട് മുമ്പ് ലോക്ക് ചെയ്‌ത ഉറവിടം റിലീസ് ചെയ്യുമ്പോൾ ഈ ഇവന്റ് സംഭവിക്കുന്നു.

ഒരു ലോക്ക് ലഭിക്കുന്നതിനുള്ള സമയപരിധി കവിയുമ്പോൾ ഈ ഇവന്റ് സംഭവിക്കുന്നു, കാരണം ആവശ്യമായ ഉറവിടം മറ്റൊരു ഇടപാട് വഴി ലോക്ക് ചെയ്‌തിരിക്കുന്നു

തടസ്സങ്ങളുടെ സാന്നിധ്യം എങ്ങനെ നിർണ്ണയിക്കും

ഓരോ തവണയും ഒരു ഇടപാട് ഒരു റിസോഴ്സ് (പട്ടിക, പേജ്, സൂചിക മുതലായവ) ഉപയോഗിക്കുമ്പോൾ, അതിന് ഒരു ലോക്ക് നിയോഗിക്കപ്പെടുന്നു. മറ്റൊരു ഇടപാട് ഈ റിസോഴ്‌സ് ആക്‌സസ് ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ, ലോക്ക് തരം ഇതിനകം കൈവശം വച്ചിരിക്കുന്ന ലോക്കുമായി പൊരുത്തപ്പെടുന്നില്ലെങ്കിൽ, ഒരു പുതിയ ലോക്ക് ലഭിക്കും.

തടയുന്നതിന്റെ സാന്നിധ്യം നിർണ്ണയിക്കാൻ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന രീതികൾ ഉപയോഗിക്കാം:

  • SQL സെർവർ മാനേജ്‌മെന്റ് സ്റ്റുഡിയോ ആക്‌റ്റിവിറ്റി മോണിറ്റർ യൂട്ടിലിറ്റി ഉപയോഗിക്കുക, ഇത് പ്രോസസ്സുകൾ, പ്രോസസ്സ്-ലെവൽ, ഒബ്‌ജക്റ്റ്-ലെവൽ ലോക്കുകൾ എന്നിവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ കാണിക്കുന്നു. SQL സെർവർ മാനേജ്‌മെന്റ് സ്റ്റുഡിയോയിൽ ആക്‌റ്റിവിറ്റി മോണിറ്റർ ആക്‌സസ് ചെയ്യുന്നതിന് നിങ്ങൾ ഇനം തിരഞ്ഞെടുക്കേണ്ടതുണ്ട് മാനേജ്മെന്റ്, അതിൽ - പ്രവർത്തന മോണിറ്റർഈ ഘടകത്തിൽ ഡബിൾ ക്ലിക്ക് ചെയ്യുക. ആക്റ്റിവിറ്റി മോണിറ്റർ നിങ്ങളെ കാണാൻ അനുവദിക്കുന്നു:

ഓരോ പ്രോസസ്സിനും ലോക്ക് ചെയ്ത ഒബ്‌ജക്‌റ്റുകൾ - ലോക്കിന് കാരണമായ അഭ്യർത്ഥന നിർണ്ണയിക്കാൻ പ്രോസസ്സ് ഐഡി ഉപയോഗിക്കുക സെർവർ പ്രോസസ്സ് ഐഡി (SPID)പേജിൽ പ്രോസസ്സ് വിവരം,

മറ്റ് പ്രക്രിയകൾ കാത്തിരിക്കുന്നതിന് കാരണമാകുന്ന പ്രക്രിയകൾ - അത്തരം പ്രക്രിയകൾ തിരിച്ചറിയാൻ കോളം ഉപയോഗിക്കുക തടഞ്ഞത്പേജിൽ പ്രോസസ്സ് വിവരം(ചിത്രം 6);

  • തടഞ്ഞ പ്രക്രിയകളെക്കുറിച്ചുള്ള ഒരു റിപ്പോർട്ട് ലഭിക്കാൻ SQL സെർവർ പ്രൊഫൈലർ ഉപയോഗിക്കുക - ഈ ലിസ്റ്റ് ഒരു നിശ്ചിത സമയത്തേക്കാൾ കൂടുതൽ സമയം തടഞ്ഞിരിക്കുന്ന പ്രക്രിയകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ പ്രദർശിപ്പിക്കുന്നു

ഞങ്ങളുടെ ജോലിയിൽ, ഒരു നിശ്ചിത അഭ്യർത്ഥന മന്ദഗതിയിലാകുന്ന ഒരു സാഹചര്യം ഞങ്ങൾ പലപ്പോഴും നേരിടുന്നു, കൂടാതെ അഭ്യർത്ഥനയുടെ വാചകത്തിൽ നിന്ന് വ്യക്തമായ പ്രശ്നങ്ങളൊന്നും ദൃശ്യമാകില്ല. സാധാരണയായി ഈ സാഹചര്യത്തിൽ പ്രശ്നം ആഴത്തിലുള്ള തലത്തിൽ അന്വേഷിക്കേണ്ടത് ആവശ്യമാണ്. ചട്ടം പോലെ, ഒരു SQL അന്വേഷണത്തിന്റെ ടെക്‌സ്‌റ്റും അതിന്റെ പ്ലാനും നോക്കേണ്ടതുണ്ട്, ഇവിടെയാണ് SQLProfiler ഞങ്ങളെ സഹായിക്കുന്നത്.

എന്താണ് SQL പ്രൊഫൈലർ, എന്തുകൊണ്ട് ഇത് ആവശ്യമാണ്?

SQLProfiler എന്നത് MS SQL സെർവറിനൊപ്പം വിതരണം ചെയ്യുന്ന ഒരു പ്രോഗ്രാമാണ്, കൂടാതെ SQL സെർവറിൽ സംഭവിക്കുന്ന എല്ലാ ഇവന്റുകളും കാണുന്നതിന് അല്ലെങ്കിൽ മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ഒരു ട്രെയ്സ് റെക്കോർഡുചെയ്യുന്നതിന് രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണ്. എന്തുകൊണ്ട് ഒരു 1C പ്രോഗ്രാമർക്ക് SQLProfiler ആവശ്യമായി വന്നേക്കാം? കുറഞ്ഞത് SQL-ൽ ഒരു ചോദ്യത്തിന്റെ ടെക്സ്റ്റ് ലഭിക്കാനും അതിന്റെ പ്ലാൻ കാണാനും. തീർച്ചയായും, ഒരു ടെക്നോളജി മാസികയുടെ സഹായത്തോടെ ഇത് ചെയ്യാൻ കഴിയും, എന്നാൽ ഇതിന് ചില കഴിവുകൾ ആവശ്യമാണ്, സാങ്കേതിക ജേണലിലെ പ്ലാൻ വളരെ മനോഹരവും വായിക്കാവുന്നതുമല്ല. പ്രൊഫൈലറിൽ നിങ്ങൾക്ക് ഒരു വാചകം മാത്രമല്ല, ഗ്രാഫിക്കൽ ക്വറി എക്സിക്യൂഷൻ പ്ലാനും കാണാൻ കഴിയും, അത് എന്റെ അഭിപ്രായത്തിൽ കൂടുതൽ സൗകര്യപ്രദമാണ്. നിങ്ങൾക്ക് നിർണ്ണയിക്കാൻ പ്രൊഫൈലറും ഉപയോഗിക്കാം: ഒരു നിശ്ചിത സമയത്തേക്കാൾ ദൈർഘ്യമുള്ള അഭ്യർത്ഥനകൾ, ലോക്കുകൾക്കായി കാത്തിരിക്കുന്ന ഒരു നിർദ്ദിഷ്‌ട ടേബിളിലേക്കുള്ള അഭ്യർത്ഥനകൾ, ഡെഡ്‌ലോക്ക് ടൈംഔട്ടുകൾ എന്നിവയും അതിലേറെയും...

SQL പ്രൊഫൈലർ ഉപയോഗിച്ച് ചോദ്യങ്ങൾ വിശകലനം ചെയ്യുന്നു

ചോദ്യങ്ങൾ വിശകലനം ചെയ്യാൻ പ്രൊഫൈലർ മിക്കപ്പോഴും ഉപയോഗിക്കുന്നു. ചട്ടം പോലെ, ഞങ്ങൾ എല്ലാ ചോദ്യങ്ങളും ട്രാക്ക് ചെയ്യേണ്ടതില്ല; പലപ്പോഴും 1C ഭാഷയിലെ ഒരു പ്രത്യേക ചോദ്യം SQL-ലേക്ക് വിവർത്തനം ചെയ്യുന്നതെങ്ങനെയെന്ന് കാണുകയും അതിന്റെ എക്സിക്യൂഷൻ പ്ലാൻ കാണുകയും വേണം. ഉദാഹരണത്തിന്, ഒരു ചോദ്യം സാവധാനത്തിൽ പ്രവർത്തിക്കുന്നത് എന്തുകൊണ്ടാണെന്ന് നിർണ്ണയിക്കാൻ ഞങ്ങൾക്ക് ഇത് ആവശ്യമായി വന്നേക്കാം, അല്ലെങ്കിൽ ഞങ്ങൾ ഒരു വലിയ ചോദ്യം എഴുതിയിരിക്കാം, കൂടാതെ SQL അന്വേഷണ ബോഡിയിൽ ഒരു സബ്ക്വറിയിൽ ചേരുന്നില്ലെന്ന് ഉറപ്പാക്കാൻ ആഗ്രഹിക്കുന്നു. ട്രെയ്‌സിൽ അഭ്യർത്ഥന പിടിക്കാൻ, ഇനിപ്പറയുന്നവ ചെയ്യുക:

1. SQL പ്രൊഫൈലർ സമാരംഭിക്കുക - എല്ലാ പ്രോഗ്രാമുകളും - Microsoft SQL സെർവർ 2008 R2 - പ്രൊഡക്ടിവിറ്റി ടൂളുകൾ - SQLProfiler
2. ഒരു പുതിയ ട്രെയ്സ് ഫയൽ സൃഷ്ടിക്കുക - ട്രെയ്സ് സൃഷ്ടിക്കുക (Ctrl+N)
3. ഞങ്ങളുടെ ഡാറ്റാബേസ് സ്ഥിതി ചെയ്യുന്ന DBMS സെർവർ വ്യക്തമാക്കി "കണക്റ്റ്" ക്ലിക്ക് ചെയ്യുക.

സ്വാഭാവികമായും, മറ്റൊരു കമ്പ്യൂട്ടറിൽ സ്ഥിതി ചെയ്യുന്ന ഒരു DBMS സെർവർ കണ്ടെത്തുന്നതിൽ നിന്ന് ഒന്നും നിങ്ങളെ തടയുന്നില്ല. 4. ദൃശ്യമാകുന്ന "ട്രേസ് പ്രോപ്പർട്ടീസ്" വിൻഡോയിൽ, രണ്ടാമത്തെ ടാബിലേക്ക് പോകുക "ഇവന്റുകൾ തിരഞ്ഞെടുക്കുക"

5. ഇപ്പോൾ നമുക്ക് ട്രെയ്‌സിൽ കാണാൻ ആഗ്രഹിക്കുന്ന ഈ ഇവന്റുകളുടെ ഇവന്റുകളും സവിശേഷതകളും വ്യക്തമാക്കേണ്ടതുണ്ട്. ഞങ്ങൾക്ക് ചോദ്യങ്ങളും അന്വേഷണ പദ്ധതികളും ആവശ്യമാണ്, അതിനാൽ ഉചിതമായ ഇവന്റുകൾ പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്. പ്രോപ്പർട്ടികളുടെയും ഇവന്റുകളുടെയും പൂർണ്ണമായ ലിസ്റ്റ് പ്രദർശിപ്പിക്കുന്നതിന്, "എല്ലാ കോളങ്ങളും കാണിക്കുക", "എല്ലാ ഇവന്റുകൾ കാണിക്കുക" ഫ്ലാഗുകളും പ്രവർത്തനക്ഷമമാക്കുക. അടുത്തതായി, ചുവടെയുള്ള ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്ന ഇവന്റുകൾ മാത്രം നിങ്ങൾ തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്, മറ്റെല്ലാ ഇവന്റുകളും പ്രവർത്തനരഹിതമാക്കേണ്ടതുണ്ട്.


ഇവന്റുകളുടെ വിവരണം: ShowplanStatisticsProfile - ടെക്സ്റ്റ് ക്വറി എക്സിക്യൂഷൻ പ്ലാൻ.
ShowplanXMLStatisticsProfile - ഗ്രാഫിക്കൽ ക്വറി എക്സിക്യൂഷൻ പ്ലാൻ.
RPC:പൂർത്തിയായി - ഒരു നടപടിക്രമമായി എക്സിക്യൂട്ട് ചെയ്താൽ ടെക്സ്റ്റ് അഭ്യർത്ഥിക്കുക (പാരാമീറ്ററുകളുള്ള ഒരു 1C അഭ്യർത്ഥന നടപ്പിലാക്കുകയാണെങ്കിൽ).
SQL:BatchCompleted - ഇത് ഒരു സാധാരണ ചോദ്യമായി എക്സിക്യൂട്ട് ചെയ്യുകയാണെങ്കിൽ ചോദ്യ വാചകം (ഒരു 1C ചോദ്യം പാരാമീറ്ററുകൾ ഇല്ലാതെ എക്സിക്യൂട്ട് ചെയ്തിട്ടുണ്ടെങ്കിൽ).

6. ഇപ്പോൾ നിങ്ങൾ ഇവന്റുകൾക്കായി ഒരു ഫിൽട്ടർ സജ്ജീകരിക്കേണ്ടതുണ്ട്. ഇത് ചെയ്തില്ലെങ്കിൽ, ഈ DBMS സെർവറിൽ സ്ഥിതി ചെയ്യുന്ന എല്ലാ ഡാറ്റാബേസുകൾക്കുമുള്ള അന്വേഷണങ്ങൾ ഞങ്ങൾ കാണും. "നിര ഫിൽട്ടറുകൾ" ബട്ടണിൽ ക്ലിക്ക് ചെയ്ത് ഡാറ്റാബേസ് നാമം അനുസരിച്ച് ഒരു ഫിൽട്ടർ വ്യക്തമാക്കുക

"TestBase_8_2" ഡാറ്റാബേസിലേക്കുള്ള അഭ്യർത്ഥനകൾ മാത്രം നമുക്ക് ട്രെയ്സിൽ കാണാം. വേണമെങ്കിൽ, നിങ്ങൾക്ക് മറ്റ് ഫീൽഡുകളിൽ ഒരു ഫിൽട്ടർ സജ്ജീകരിക്കാം, അവയിൽ ഏറ്റവും രസകരമായത് ഇവയാണ്: ദൈർഘ്യം (ദൈർഘ്യം), TextData (സാധാരണയായി അഭ്യർത്ഥനയുടെ വാചകം) കൂടാതെ RowCounts (അഭ്യർത്ഥന നൽകിയ വരികളുടെ എണ്ണം).

ഉദാഹരണത്തിന്, "TestBase_8_2" ഡാറ്റാബേസിൽ 3 സെക്കൻഡിൽ കൂടുതൽ ദൈർഘ്യമുള്ള "_InfoRg4312" പട്ടികയിലേക്കുള്ള എല്ലാ അഭ്യർത്ഥനകളും എനിക്ക് പിടിക്കണമെങ്കിൽ, ഞാൻ ചെയ്യുന്നത്:
a) മുകളിൽ കാണിച്ചിരിക്കുന്ന ഉദാഹരണം, ഡാറ്റാബേസ് പ്രകാരം ഫിൽട്ടർ ചെയ്യുക
b) മില്ലിസെക്കൻഡിൽ ദൈർഘ്യമനുസരിച്ച് ഫിൽട്ടർ ചെയ്യുക.

സി) അഭ്യർത്ഥന വാചകം അനുസരിച്ച് ഫിൽട്ടർ ചെയ്യുക


ഇവിടെ ഞങ്ങൾ മാസ്ക് വ്യക്തമാക്കുന്നു. നിങ്ങൾക്ക് ഒന്നിലധികം ടേബിളുകൾ ആക്‌സസ് ചെയ്യുന്ന ചോദ്യങ്ങൾ ട്രാക്ക് ചെയ്യണമെങ്കിൽ, "സമാനമായത്" വിഭാഗത്തിൽ നിരവധി ഘടകങ്ങൾ സൃഷ്ടിക്കുക. എല്ലാ ഫിൽട്ടർ വ്യവസ്ഥകളും ഒരുമിച്ച് പ്രവർത്തിക്കുന്നു.

7. ഇപ്പോൾ നിങ്ങൾക്ക് ട്രെയ്സ് പ്രവർത്തിപ്പിക്കാൻ കഴിയും. "റൺ" ക്ലിക്ക് ചെയ്യുക, അതിനുശേഷം ട്രെയ്‌സിംഗ് പ്രവർത്തിക്കാൻ തുടങ്ങും, നിങ്ങൾ പ്രദർശിപ്പിക്കാൻ കോൺഫിഗർ ചെയ്‌തതും നിങ്ങളുടെ ഫിൽട്ടറുകൾക്ക് കീഴിൽ വരുന്നതുമായ ഇവന്റുകൾ നിങ്ങൾക്ക് കാണാൻ കഴിയും. ട്രേസ് നിയന്ത്രിക്കാൻ നിങ്ങൾക്ക് കമാൻഡ് ബാറിലെ ബട്ടണുകൾ ഉപയോഗിക്കാം.


ഇടത്തുനിന്ന് വലത്തോട്ട്: ഇറേസർ - ട്രെയ്‌സിംഗ് വിൻഡോ മായ്‌ക്കുന്നു, ആരംഭിക്കുക - ട്രെയ്‌സിംഗ് ആരംഭിക്കുന്നു, താൽക്കാലികമായി നിർത്തുന്നു, ട്രെയ്‌സിംഗ് താൽക്കാലികമായി നിർത്തുന്നു, സ്‌റ്റാർട്ട് റെസ്‌യുമെസ് ട്രേസിംഗ്, സ്റ്റോപ്പ് - ട്രേസിംഗ് നിർത്തുന്നു

8. ട്രേസിംഗ് വിൻഡോ തന്നെ രണ്ട് ഭാഗങ്ങൾ ഉൾക്കൊള്ളുന്നു. മുകളിൽ ഇവന്റുകളും ഇവന്റ് പ്രോപ്പർട്ടികൾ ഉണ്ട്. ഇവന്റുകളുടെ തരം അനുസരിച്ച് താഴെയുള്ള വിഭാഗം വ്യത്യസ്ത വിവരങ്ങൾ പ്രദർശിപ്പിക്കുന്നു. ഞങ്ങളുടെ കാര്യത്തിൽ, അഭ്യർത്ഥനയുടെ വാചകം അല്ലെങ്കിൽ അതിന്റെ പ്ലാൻ ഇവിടെ പ്രദർശിപ്പിക്കും.

9. 1C ക്വറി കൺസോളിൽ അഭ്യർത്ഥന എക്സിക്യൂട്ട് ചെയ്ത് പ്രൊഫൈലറിൽ അത് എങ്ങനെ പ്രതിഫലിപ്പിക്കുന്നുവെന്ന് നോക്കാം.


നിരവധി അഭ്യർത്ഥനകൾ ഉണ്ടായിരുന്നുവെന്നും അവയിൽ ഒന്ന് മാത്രമാണ് ഞങ്ങളുടേതെന്നും ട്രെയ്സ് കാണിക്കുന്നു. മറ്റ് അഭ്യർത്ഥനകൾ സേവന അഭ്യർത്ഥനകളാണ്.

10. ഇവന്റുകളുടെ പ്രോപ്പർട്ടികളിൽ നിന്ന്, നിങ്ങൾക്ക് മനസിലാക്കാൻ കഴിയും: ചോദ്യം എത്ര സെക്കൻഡ് എക്സിക്യൂട്ട് ചെയ്തു (ദൈർഘ്യം), എത്ര ലോജിക്കൽ റീഡിംഗുകൾ ഉണ്ടായിരുന്നു (വായനകൾ), ഫലമായി അന്വേഷണം എത്ര വരികൾ മടങ്ങിയെത്തി (റൗകൗണ്ടുകൾ) മുതലായവ. എന്റെ കാര്യത്തിൽ, ചോദ്യം 2 മില്ലിസെക്കൻഡ് ഓടി, 4 ലോജിക്കൽ റീഡുകൾ നടത്തി, 1 വരി തിരികെ നൽകി.

11. നമ്മൾ ഒരു ഇവന്റിലേക്ക് പോയാൽ, ഗ്രാഫിക്കൽ രൂപത്തിൽ ക്വറി പ്ലാൻ കാണാം.
പ്ലാനിൽ നിന്ന് കാണാൻ കഴിയുന്നതുപോലെ, ഈ പ്ലാനിനെ അനുയോജ്യമെന്ന് വിളിക്കാൻ കഴിയില്ലെങ്കിലും, ഇൻഡെക്‌സ് ഉപയോഗിച്ചാണ് തിരയൽ നടത്തുന്നത്. സൂചിക ഉൾപ്പെടുന്നില്ല, കോഡും നെയിം ഫീൽഡുകളും കീ ലുക്ക്അപ്പ് ഉപയോഗിച്ചാണ് ലഭിക്കുന്നത്, ഇതിന് 50% സമയമെടുക്കും.


സന്ദർഭ മെനു ഉപയോഗിച്ച്, ഗ്രാഫിക് പ്ലാൻ *.SQLPlan വിപുലീകരണം ഉപയോഗിച്ച് ഒരു പ്രത്യേക ഫയലായി സേവ് ചെയ്യാനും മറ്റൊരു കമ്പ്യൂട്ടറിൽ പ്രൊഫൈലറിൽ തുറക്കാനും അല്ലെങ്കിൽ കൂടുതൽ വിപുലമായ SQL Sentry Plan Explorer പ്രോഗ്രാം ഉപയോഗിക്കാനും കഴിയും.

12. നമ്മൾ ഇതിലും മുകളിലേക്ക് പോയാൽ, അതേ അന്വേഷണ പ്ലാൻ തന്നെ കാണും, പക്ഷേ ടെക്സ്റ്റ് രൂപത്തിൽ. ഈ പ്ലാനാണ് TZ, TsUP, മറ്റ് 1C പെർഫോമൻസ് മോണിറ്ററിംഗ് ടൂളുകൾ എന്നിവയിൽ പ്രദർശിപ്പിക്കുന്നത്. ഇത് വിശകലനം ചെയ്യാൻ, നോട്ട്പാഡ്++ പോലെയുള്ള ബാക്ക്ലൈറ്റിംഗുള്ള വിപുലമായ ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നു.

13. ഞാൻ "ഫയൽ-സേവ് അസ്" മെനു ഉപയോഗിക്കുന്നു; മുഴുവൻ ട്രേസും വിവിധ ഫോർമാറ്റുകളിൽ സംരക്ഷിക്കാൻ കഴിയും:
a) പ്രൊഫൈലറിന്റെ ഫോർമാറ്റിൽ തന്നെ, അതായത്. വിപുലീകരണത്തോടൊപ്പം *.trc
b) xml ഫോർമാറ്റിൽ
സി) നിങ്ങൾക്ക് ട്രേസിൽ നിന്ന് ഒരു ടെംപ്ലേറ്റ് ഉണ്ടാക്കാം. അടുത്ത പോയിന്റ് കാണുക.
d) നിങ്ങൾക്ക് ട്രെയ്സ് ഒരു ഡാറ്റാബേസ് പട്ടികയായി സേവ് ചെയ്യാം. നമുക്ക് കണ്ടെത്തണമെങ്കിൽ സൗകര്യപ്രദമായ മാർഗം, ഉദാഹരണത്തിന്, മുഴുവൻ ട്രെയ്‌സിലെയും വേഗത കുറഞ്ഞ അഭ്യർത്ഥന അല്ലെങ്കിൽ ചില പാരാമീറ്റർ പ്രകാരം അഭ്യർത്ഥനകൾ തിരഞ്ഞെടുക്കുക. ഫയൽ - ഇതായി സംരക്ഷിക്കുക - ട്രേസ് ടേബിൾ - ഡിബിഎംഎസ് സെർവർ തിരഞ്ഞെടുത്ത് അതിലേക്ക് കണക്റ്റുചെയ്യുക അടുത്തതായി, നിർദ്ദിഷ്ട സെർവറിൽ നിങ്ങൾ ഒരു ഡാറ്റാബേസ് തിരഞ്ഞെടുത്ത് ട്രേസ് സംരക്ഷിക്കപ്പെടുന്ന പട്ടികയുടെ പേര് വ്യക്തമാക്കേണ്ടതുണ്ട്. നിങ്ങൾക്ക് നിലവിലുള്ള ഒരു പട്ടിക തിരഞ്ഞെടുക്കാം, അല്ലെങ്കിൽ ഒരു പുതിയ പേര് എഴുതുക, തുടർന്ന് തിരഞ്ഞെടുത്ത ഡാറ്റാബേസിൽ പട്ടിക യാന്ത്രികമായി സൃഷ്ടിക്കപ്പെടും.

ഒരു സെക്കൻഡിന്റെ ദശലക്ഷക്കണക്കിന് ടേബിളിൽ ദൈർഘ്യം സംഭരിച്ചിട്ടുണ്ടെന്നും ഫലം പ്രദർശിപ്പിക്കുമ്പോൾ, മൂല്യം മില്ലിസെക്കൻഡിലേക്ക് മാറ്റുന്നത് ഉചിതമാണെന്നും കണക്കിലെടുക്കണം. പട്ടികയിൽ RowNumber കോളവും ചേർത്തിട്ടുണ്ട്, ഇത് ട്രേസിലെ ഈ വരിയുടെ എണ്ണം കാണിക്കുന്നു.

14. അഭ്യർത്ഥനകൾ വിശകലനം ചെയ്യാൻ നിങ്ങൾ പലപ്പോഴും പ്രൊഫൈലർ ഉപയോഗിക്കേണ്ടതുണ്ടെങ്കിൽ, ആവശ്യമായ ഫിൽട്ടറുകളും ഇവന്റുകളും സജ്ജീകരിക്കുന്നത് പെട്ടെന്ന് ബോറടിക്കുകയും ധാരാളം സമയമെടുക്കുകയും ചെയ്യും. ട്രെയ്‌സ് ടെംപ്ലേറ്റുകൾ രക്ഷാപ്രവർത്തനത്തിലേക്ക് വരുന്നു, അവിടെ നമുക്ക് ആവശ്യമായ ഫിൽട്ടറുകളും നിരകളുടെ ക്രമവും ഞങ്ങൾ വ്യക്തമാക്കുന്നു, തുടർന്ന് ഒരു പുതിയ ട്രെയ്സ് സൃഷ്ടിക്കുമ്പോൾ ഈ ടെംപ്ലേറ്റ് തിരഞ്ഞെടുക്കുക. ഒരു ടെംപ്ലേറ്റ് സൃഷ്ടിക്കാൻ, മെനു ഫയൽ - ടെംപ്ലേറ്റുകൾ - പുതിയ ടെംപ്ലേറ്റ് ഉപയോഗിക്കുക

ആദ്യ ടാബിൽ എല്ലാം ലളിതമാണ്. ഞങ്ങൾ സെർവർ തരം, ടെംപ്ലേറ്റിന്റെ പേര് എന്നിവ സൂചിപ്പിക്കുന്നു, ആവശ്യമെങ്കിൽ, സ്ഥിരസ്ഥിതിയായി ഈ ടെംപ്ലേറ്റ് ഉപയോഗിക്കുന്നതിന് ഫ്ലാഗ് സജ്ജമാക്കുക. രണ്ടാമത്തെ ടാബിൽ, മുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഞങ്ങൾ ഇവന്റുകൾ തിരഞ്ഞെടുത്ത് ഫിൽട്ടറുകൾ കോൺഫിഗർ ചെയ്യുന്നു. ട്രെയ്‌സിലെ നിരകളുടെ ക്രമം ക്രമീകരിക്കാനും ഞാൻ ശുപാർശ ചെയ്യുന്നു; അന്വേഷണങ്ങൾ വിശകലനം ചെയ്യുമ്പോൾ ഇത് സമയം ലാഭിക്കുന്നു. ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന ഓർഡർ ഉപയോഗിക്കുന്നത് കൂടുതൽ സൗകര്യപ്രദമാണെന്ന് ഞാൻ കരുതുന്നു.

ഇപ്പോൾ, ഒരു പുതിയ ട്രെയ്സ് സൃഷ്ടിക്കുമ്പോൾ, നിങ്ങൾക്ക് ആവശ്യമുള്ള ടെംപ്ലേറ്റ് വ്യക്തമാക്കാൻ കഴിയും, അതിനുശേഷം എല്ലാ ഫിൽട്ടറുകളും ഇവന്റുകളും രണ്ടാമത്തെ ടാബിൽ യാന്ത്രികമായി പൂരിപ്പിക്കും.

തീർച്ചയായും, ഈ അത്ഭുതകരമായ ഉപകരണം ഉപയോഗിക്കുന്നതിനുള്ള എല്ലാ വഴികളും ഇവിടെ കാണിച്ചിട്ടില്ല; പ്രേക്ഷകരിൽ നിന്ന് താൽപ്പര്യമുണ്ടെങ്കിൽ, ഭാവിയിൽ ഈ വിഷയത്തെക്കുറിച്ചുള്ള ലേഖനങ്ങളുടെ ശേഖരം വിപുലീകരിക്കാൻ കഴിയും.