1. შესავალი SQL Server პროფილი
1.1 რა არის SQL Server პროფილერი და რატომ გვჭირდება ის?
SQL Server Profiler არის გრაფიკული ინტერფეისის ინსტრუმენტი, რომელიც გამოიყენება შიგნით მიმდინარე მოვლენების მონიტორინგისა და აღსაწერად. SQL Serverეს მძლავრი დიაგნოსტიკური ინსტრუმენტი მონაცემთა ბაზის ადმინისტრატორებსა და დეველოპერებს საშუალებას აძლევს, რეალურ დროში დააკვირდნენ მონაცემთა ბაზის ძრავის აქტივობას, რაც ხელს უწყობს მუშაობის შეფერხებების იდენტიფიცირებას, აპლიკაციის პრობლემების მოგვარებას და უსაფრთხოების მოვლენების აუდიტს.
1.2 SQL Server Profiler 2025 წელს: მიმდინარე სტატუსი და ალტერნატივები
Microsoft-ი მოძველებულია SQL Server პროფილერი, რომელიც იწყება SQL Server 2016, რეკომენდაცია გაფართოებული ღონისძიებები როგორც ჩანაცვლების ტექნოლოგია. თუმცა, ინსტრუმენტი კვლავ ხელმისაწვდომია მიმდინარე SQL Server ვერსიები, მათ შორის SQL Server 2022 წლიდან და დღემდე ფართოდ გამოიყენება მონაცემთა ბაზის პროფესიონალების მიერ.
1.3 ვინ უნდა გამოიყენოს ეს სახელმძღვანელო
- ეს სახელმძღვანელო ემსახურება მონაცემთა ბაზის ადმინისტრატორებს, რომლებსაც მონიტორინგი სჭირდებათ SQL Server ინსტანციების დადგენა, მუშაობის პრობლემების დიაგნოსტიკა და სისტემის საიმედოობის უზრუნველყოფა. მონაცემთა ბაზის სპეციალისტები იპოვიან პრაქტიკულ რჩევებს კვალის აღრიცხვის, მოვლენების ანალიზისა და მონიტორინგის სტრატეგიების განხორციელების შესახებ.
- აპლიკაციების დეველოპერებისთვის სასარგებლოა იმის გაგება, თუ როგორ ურთიერთქმედებს მათი კოდი SQL ServerSQL Profiler ეხმარება დეველოპერებს არაეფექტური მოთხოვნების იდენტიფიცირებაში, აპლიკაციის ქცევის დადასტურებასა და მონაცემთა ბაზასთან დაკავშირებული შეცდომების გამართვაში.
- შესრულების ანალიტიკოსები და კონსულტანტები აღმოაჩენენ სამუშაო დატვირთვის ანალიზის, შესაძლებლობების დაგეგმვისა და სისტემის ოპტიმიზაციის მოწინავე ტექნიკებს. კვალის კონფიგურაციის, ფილტრაციისა და ანალიზის ყოვლისმომცველი დაფარვა საშუალებას იძლევა მონაცემთა ბაზის მუშაობის საფუძვლიანი შეფასებისა.
2. გაგება SQL Server პროფილის საფუძვლები
2.1 როგორ SQL Server Profiler Works
SQL Server Profiler მუშაობს როგორც კლიენტის აპლიკაცია, რომელიც უკავშირდება SQL Trace ძრავას, რომელიც მუშაობს SQL Serverროდესაც თქვენ ქმნით კვალის პროექტს, მონაცემთა ბაზის ძრავა აკონტროლებს მითითებულ მოვლენებს და აღრიცხავს მათ თქვენი კონფიგურაციის შესაბამისად. კვალის ორგანიზატორი აგროვებს მოვლენების მონაცემებს სერვერის მუშაობაზე მინიმალური გავლენით, სათანადო კონფიგურირების შემთხვევაში.
SQL Trace-ის ინფრასტრუქტურა მონაცემთა ბაზის ძრავში იყენებს მსუბუქ მოვლენათა კაუჭებს. როდესაც ხდება მოვლენა, რომელიც შეესაბამება თქვენი კვალის განმარტებას, ძრავა აფიქსირებს შესაბამის ინფორმაციას და ან აგზავნის მას Profiler ინტერფეისზე, ან ინახავს მას ფაილში ან ცხრილში. ეს არქიტექტურა საშუალებას იძლევა მონაცემთა მოქნილი შეგროვების აპლიკაციის კოდის შეცვლის გარეშე.
2.2 ძირითადი ცნებები და ტერმინოლოგია
2.2.1 მოვლენები
მოვლენები წარმოადგენს კონკრეტულ მოვლენებს SQL Server რომლის დაფიქსირებაც კვალის ძრავას შეუძლია. თითოეული მოვლენა შეესაბამება მონაცემთა ბაზის კონკრეტულ ოპერაციას ან სისტემის აქტივობას. SQL Server Profiler მოვლენებს ლოგიკურ კატეგორიებად აწყობს კონფიგურაციის გასამარტივებლად.
მოვლენების გავრცელებული კატეგორიებია TSQL შეკითხვის შესრულებისთვის, შენახული პროცედურები პროცედურების გამოძახებისთვის, ბლოკები პარალელური მონიტორინგისთვის და შეცდომები და გაფრთხილებები გამონაკლისების თვალყურის დევნებისთვის. შესაბამისი მოვლენების შერჩევა განსაზღვრავს, თუ რა ინფორმაციას აგროვებს თქვენი კვალი და პირდაპირ გავლენას ახდენს კვალის სარგებლიანობასა და შესრულების ხარჯებზე.
მოვლენების ტიპების გაგება ეფექტური ტრასების კონფიგურაციაში დაგეხმარებათ. RPC:Completed events აღრიცხავს დისტანციური პროცედურების ზარების დასრულებას, SQL:BatchCompleted events აკონტროლებს ad-hoc მოთხოვნების პაკეტებს, ხოლო Lock:Deadlock events ადგენს ჩიხში მყოფ შემთხვევებს. აირჩიეთ მოვლენები, რომლებიც შეესაბამება თქვენს კონკრეტულ პრობლემების მოგვარების ან მონიტორინგის მიზნებს.
2.2.2 მონაცემთა სვეტები
მონაცემთა სვეტები განსაზღვრავს, თუ რა ინფორმაციას იჭერს კვალი თითოეული მოვლენისთვის. გავრცელებული სვეტებია: TextData ფაქტობრივი SQL ოპერატორისთვის, Duration - შესრულების დროისთვის, CPU - პროცესორის გამოყენებისთვის, Reads - ლოგიკური დისკის წაკითხვისთვის და Writes - ლოგიკური დისკის ჩაწერისთვის.
ძირითადი სვეტები გამოყენების შემთხვევის მიხედვით განსხვავდება. შესრულების პრობლემების გადასაჭრელად, როგორც წესი, საჭიროა სვეტები „ხანგრძლივობა“, „პროცესორი“, „წაკითხვა“ და „ჩაწერა“. უსაფრთხოების აუდიტის დროს საჭიროა სვეტები „შესვლის სახელი“, „მონაცემთა ბაზის სახელი“ და „ობიექტის სახელი“. აპლიკაციის გამართვისთვის სასარგებლოა სვეტები „აპლიკაციის სახელი“, „SPID“ და „შეცდომა“.
მხოლოდ აუცილებელი სვეტების შერჩევა ამცირებს კვალის დამუშავების ხარჯებს და ამარტივებს ანალიზს. მოერიდეთ ყველა არსებული სვეტის აღებას, თუ ეს კონკრეტულად არ არის საჭირო. თითოეული დამატებითი სვეტი ზრდის შეგროვებული და დამუშავებული მონაცემების რაოდენობას, რამაც პოტენციურად იმოქმედა სერვერის მუშაობაზე.
2.2.3 ფილტრი
ფილტრები განსაზღვრული კრიტერიუმების მიხედვით ზღუდავენ, თუ რომელ მოვლენებს აღრიცხავს კვალი. სწორად კონფიგურირებული ფილტრები მკვეთრად ამცირებენ კვალის მოცულობას, რაც ანალიზს მართვადს ხდის და მინიმუმამდე ამცირებს მის ეფექტურობაზე ზემოქმედებას. ფილტრები აფასებენ მოვლენების მონაცემებს აღრიცხვამდე, რაც ხელს უშლის მონაცემთა არასაჭირო შეგროვებას.
ფილტრის საერთო კრიტერიუმებია: მონაცემთა ბაზის სახელი კონკრეტულ მონაცემთა ბაზებზე ფოკუსირებისთვის, აპლიკაციის სახელი კონკრეტული აპლიკაციების იზოლირებისთვის, ხანგრძლივობა მხოლოდ ნელი ოპერაციების აღსაწერად და შესვლის სახელი კონკრეტული მომხმარებლების თვალყურის დევნებისთვის. მრავალი ფილტრის გაერთიანებით იქმნება ზუსტი კვალის განსაზღვრებები, რომლებიც ზუსტად იმას აღბეჭდავს, რაც გჭირდებათ.
შესრულების გათვალისწინებით ფილტრაცია აუცილებელია საწარმოო გარემოსთვის. სისტემის აქტივობის აღრიცხვის თავიდან ასაცილებლად, ყოველთვის გაფილტრეთ მონაცემთა ბაზის სახელით ან აპლიკაციის სახელით. დააყენეთ მინიმალური ხანგრძლივობის ზღვრები სწრაფად შესრულებული მოთხოვნების იგნორირებისთვის. გამოიყენეთ TextData ფილტრები სიფრთხილით, რადგან ისინი საჭიროებენ სტრიქონების შედარებას, რაც დამატებით დატვირთვას იწვევს.
2.2.4 კვალის შაბლონები
კვალის შაბლონები გვთავაზობენ წინასწარ კონფიგურირებულ მოვლენების, სვეტების და ფილტრების არჩევანს გავრცელებული სცენარებისთვის. SQL Server Profiler მოიცავს რამდენიმე ჩაშენებულ შაბლონს, რომლებიც კვალის შექმნის საწყის წერტილებად გვევლინება. მორგებული შაბლონები ინახავს თქვენს კონფიგურაციებს მრავალჯერადი კვალის სესიების განმავლობაში გამოსაყენებლად.
სტანდარტული შაბლონი აფიქსირებს მოვლენების ზოგად ნაკრებს, რომელიც შესაფერისია ძირითადი მონიტორინგისთვის. TSQL შაბლონი ფოკუსირებულია მოთხოვნების შესრულებაზე მინიმალური დანახარჯებით. Tuning შაბლონი აგროვებს მოვლენებს სპეციალურად მონაცემთა ბაზის ძრავის Tuning Advisor-ის ანალიზისთვის. თითოეული შაბლონი აბალანსებს ინფორმაციის აღრიცხვას შესრულებაზე ზეგავლენასთან.
მორგებული შაბლონების შექმნა ზოგავს დროს და უზრუნველყოფს თანმიმდევრულობას ტრასირების სესიებს შორის. დააკონფიგურირეთ ტრასირება თქვენთვის სასურველი მოვლენებით, სვეტებითა და ფილტრებით, შემდეგ შეინახეთ ის შაბლონის სახით. მორგებული შაბლონები განსაკუთრებით ღირებული ხდება, როდესაც მსგავს პრობლემებს განმეორებით აგვარებთ.
3. დაწყება SQL Server პროფილი
3.1 სისტემის მოთხოვნები და წინაპირობები
SQL Server Profiler-ს მოყვება SQL Server Management Studio და მხარს უჭერს ყველა ამჟამად შენარჩუნებულს SQL Server ვერსიები, -დან SQL Server 2016 to 2022.
ნებართვის მოთხოვნები განსაზღვრავს, ვის შეუძლია კვალის შექმნა და გაშვება. სისტემის ადმინისტრატორის ფიქსირებული სერვერის როლის წევრებს შეუზღუდავი წვდომა აქვთ SQL Server პროფილის ფუნქცია. არასისტემის ადმინისტრატორის მომხმარებლებისთვის, ALTER TRACE ნებართვა ანიჭებს კვალის შექმნისა და მართვის შესაძლებლობას.
დისტანციური სერვერების კვალის დადგენისას ქსელის მოსაზრებები გამოიყენება. კლიენტის მხარის კვალის დადგენისას საჭიროა თქვენს სამუშაო სადგურსა და... შორის უწყვეტი ქსელური კავშირი. SQL Server მაგალითად. შეწყვეტილი კავშირები აჩერებს კლიენტის მხარეს კვალის მიღებას, რაც პოტენციურად იწვევს შეგროვებული მონაცემების დაკარგვას. სერვერის მხარეს კვალის გამოყენება ამ შეზღუდვას თავიდან აგაცილებთ, რადგან ის მთლიანად მონაცემთა ბაზის სერვერზე მუშაობს.
3.2 როგორ გავუშვათ SQL Server პროფილი
3.2.1 დაწყებული SQL Server მართვის სტუდია (SSMS)
გასაშვებად მიჰყევით ამ ნაბიჯებს SQL Server SSMS-ის პროფილერი:
- ღიაა SQL Server მენეჯმენტის სტუდია და დაუკავშირდით ნებისმიერს SQL Server მაგალითად.
- დააჭირეთ ინსტრუმენტები მენიუ ზედა მენიუს ზოლში.
- აირჩიეთ SQL Server პროფილი საწყისი მენიუდან.
- ის SQL Server Profiler აპლიკაცია ახალ ფანჯარაში იხსნება.
3.2.2 Windows-ის დაწყების მენიუდან დაწყება
ხელმისაწვდომობა SQL Server პროფილერი პირდაპირ Windows-დან ამ ნაბიჯების გამოყენებით:
- დააწკაპუნეთ Windows-ზე დასაწყისი ღილაკს.
- ტიპი SQL Server პროფილი საძიებო ველში.
- აირჩიეთ SQL Server პროფილი ძიების შედეგებიდან.
- აპლიკაცია იხსნება აქტიური კავშირების გარეშე.
ალტერნატიულად, გადადით დაწყების მენიუს იერარქიაში:
- გახსნა დასაწყისი მენიუში.
- განთავსება microsoft SQL Server ინსტრუმენტები საქაღალდე.
- გააფართოვეთ საქაღალდე და დააწკაპუნეთ SQL Server პროფილი.
3.2.3 დაკავშირება SQL Server შემთხვევები
გაშვების შემდეგ SQL Server Profiler-ში, დაამყარეთ კავშირი შემდეგი ნაბიჯების მიხედვით:
- დაწკაპეთ ფაილი მენიუს ზოლში.
- აირჩიეთ ახალი კვალი საწყისი მენიუდან.
- ის დაუკავშირდით სერვერს დიალოგი გამოჩნდება.
- შეიყვანეთ თქვენი სერვერის სახელი ველში Სერვერის სახელი სფეროში.
- არჩევა Windows-ის ავთენტიფიკაცია or SQL Server აუტენტიფიკაცია.
- თუ იყენებთ SQL Server ავთენტიფიკაცია, შეიყვანეთ თქვენი შესვლის მონაცემები.
- დაწკაპეთ დაკავშირება კავშირის დამყარება.
დისტანციური კავშირებისთვის, მიუთითეთ სერვერის სრული სახელი, მათ შორის, თუ შესაძლებელია, ეგზემპლარის სახელი. დასახელებული ეგზემპლარებისთვის გამოიყენეთ ფორმატი SERVERNAME\INSTANCENAME. თუ დაკავშირების მცდელობები წარუმატებელია, გადაამოწმეთ ქსელის კავშირი და firewall-ის პარამეტრები.
4. შექმნა და კონფიგურაცია SQL Server კვალი
4.1 შაბლონის გამოყენებით თქვენი პირველი კვალის შექმნა
შექმენით თქვენი პირველი კვალი ამ ნაბიჯების გამოყენებით:
- დაწყება SQL Server პროფილერი.
- დაწკაპეთ ფაილი -> ახალი კვალი და დაუკავშირდით თქვენს სამიზნე სერვერს.
- ის კვალის თვისებები დიალოგი გამოჩნდება.
- შეიყვანეთ აღწერითი სახელი ველში კვალის სახელი სფეროში.
- აირჩიეთ შაბლონი სიიდან გამოიყენეთ შაბლონი ძირს დაგდება.
- აირჩიე სტანდარტული (ნაგულისხმევი) შაბლონი ზოგადი მონიტორინგისთვის. ან სხვა შაბლონი სხვა მიზნებისთვის. შაბლონი უზრუნველყოფს წინასწარ კონფიგურირებულ მოვლენებს, სვეტებს და ფილტრებს გავრცელებული სცენარებისთვის.
- დაწკაპეთ გასაშვებად მოვლენების აღბეჭდვის დაუყოვნებლივ დასაწყებად.
4.2 თქვენი კვალის პერსონალიზება
ხშირ შემთხვევაში, შაბლონები ვერ აკმაყოფილებს თქვენს მოთხოვნებს. ასეთ შემთხვევაში, შეგიძლიათ სრულად მოარგოთ თქვენი კვალი:
- ამ კვალის თვისებები დიალოგი.
- აირჩიეთ ცარიელი შაბლონი -დან გამოიყენეთ შაბლონი ძირს დაგდება.
- დააჭირეთ ღონისძიებების შერჩევა ჩანართის გამოყენებით, ახლა თქვენ შეგიძლიათ ყველა მოვლენის, მონაცემთა სვეტისა და ფილტრის პერსონალიზება თქვენი მოთხოვნების შესაბამისად. მათ შემდეგ სექციებში განვიხილავთ.
4.3 აღსაწერი მოვლენების შერჩევა
თქვენ შეგიძლიათ აირჩიოთ ღონისძიება, ღონისძიებების შერჩევა tab:
- დააჭირეთ + ღონისძიების კატეგორიის გვერდით დააჭირეთ ხატულას მის გასაფართოებლად.
- მოვლენის ასარჩევად დააწკაპუნეთ მის გვერდით არსებულ ველზე.
4.3.1 მოვლენების კატეგორიების გაგება
SQL Server Profiler მოვლენებს ლოგიკური დაჯგუფებისთვის კატეგორიებად აწყობს. შენახული პროცედურების კატეგორია მოიცავს პროცედურის შესრულების მოვლენებს, მათ შორის SP:Starting, SP:Completed და SP:StmtCompleted. ეს მოვლენები აკონტროლებს შენახული პროცედურის გამოძახებებს და პროცედურების ფარგლებში ინდივიდუალური ინსტრუქციის შესრულებას.
TSQL კატეგორია აღრიცხავს ad-hoc შეკითხვის შესრულებას ისეთი მოვლენებით, როგორიცაა SQL:BatchStarting და SQL:BatchCompleted. ეს მოვლენები აკონტროლებს პირდაპირ გაგზავნილ შეკითხვებს. SQL Server შენახული პროცედურების გარეთ.
„საკეტების“ კატეგორია აკონტროლებს პარალელურ მოვლენებს, მათ შორის Lock:Acquired, Lock:Released, Lock:Deadlock და Lock:Timeout. გამოიყენეთ ეს მოვლენები აპლიკაციის მუშაობაზე მოქმედი ბლოკირებისა და ჩიხის პრობლემების დიაგნოსტიკისთვის.
შეცდომებისა და გაფრთხილებების კატეგორიაში აღირიცხება გამონაკლისი მოვლენები, მათ შორის გამონაკლისი, ყურადღება და მომხმარებლის შეცდომის შეტყობინება. ეს მოვლენები ხელს უწყობს აპლიკაციის შეცდომების იდენტიფიცირებას და SQL Server გაფრთხილებები კვალის დათვალიერების სესიების დროს.
4.3.2 თქვენი სცენარისთვის შესაფერისი მოვლენების შერჩევა
შესრულების მონიტორინგისთვის საჭიროა მოვლენები, რომლებიც აფიქსირებს რესურსების მოხმარებას. მოთხოვნის შესრულების თვალყურის დევნებისთვის აირჩიეთ RPC:Completed და SQL:BatchCompleted. რესურსების გამოყენების გასაზომად ჩართეთ სვეტები „ხანგრძლივობა“, „CPU“, „წაკითხვები“ და „ჩაწერა“. ეს მოვლენები საფუძველს ქმნის შესრულების შეფერხებების იდენტიფიცირებისთვის.
უსაფრთხოების აუდიტი მოითხოვს მოვლენებს, რომლებიც აკონტროლებენ ავთენტიფიკაციას და ავტორიზაციას. მონაცემთა ბაზაზე წვდომის მონიტორინგისთვის აირჩიეთ „აუდიტის შესვლა“, „აუდიტის გასვლა“, „აუდიტის შესვლა ვერ მოხერხდა“ და „ობიექტი:გახსნილია“. დაამატეთ სვეტები „შესვლის სახელი“, „მონაცემთა ბაზის სახელი“ და „ობიექტის სახელი“, რათა დაადგინოთ, ვინ რომელ რესურსებზე წვდომით სარგებლობდა.
გამართვის სცენარებს მოვლენების ყოვლისმომცველი ჩაწერის უპირატესობა აქვთ. სრული შესრულების ნაკადების თვალყურის დევნებისთვის ჩართეთ შენახული პროცედურების მოვლენები, SQL პაკეტური მოვლენები და შეცდომის მოვლენები. მოვლენების კონკრეტულ სესიებთან დასაკავშირებლად დამატებითი კონტექსტის ჩაწერა შესაძლებელია SPID, ApplicationName და HostName სვეტების გამოყენებით.
4.4 მონაცემთა სვეტების კონფიგურაცია
ნაგულისხმევად, როდესაც მოვლენას ირჩევთ, მისი ყველა მონაცემთა სვეტი შეირჩევა (შემოწმებულია). შეგიძლიათ არასაჭირო სვეტების მოხსნა ხარჯების შესამცირებლად და ანალიზის გასამარტივებლად:
თითოეული კვალის აუცილებელი სვეტებია: EventClass მოვლენის ტიპის იდენტიფიცირებისთვის, TextData SQL ოპერატორის ფაქტობრივი აღსაწერად, LoginName შემსრულებელი მომხმარებლის იდენტიფიცირებისთვის და StartTime მოვლენის დროის აღსანიშნავად. ეს სვეტები უზრუნველყოფს თითოეული აღრიცხული მოვლენის ფუნდამენტურ კონტექსტს.
შესრულებასთან დაკავშირებული სვეტები რესურსების მოხმარებას ზომავს. ხანგრძლივობა მიუთითებს, თუ რამდენ ხანს გაგრძელდა მოვლენა მიკროწამებში. CPU აჩვენებს პროცესორის დროს მილიწამებში. წაკითხვა ითვლის ლოგიკური გვერდის წაკითხვებს. ჩაწერა აკონტროლებს ლოგიკურ გვერდზე ჩაწერებს. ეს მეტრიკები განსაზღვრავს რესურსებით ინტენსიურ ოპერაციებს, რომლებიც ოპტიმიზაციას საჭიროებენ.
უსაფრთხოებისა და აუდიტის სვეტები აკონტროლებს მონაცემებზე წვდომის ნიმუშებს. მონაცემთა ბაზის სახელი განსაზღვრავს, თუ რომელ მონაცემთა ბაზაში განხორციელდა წვდომა. ობიექტის სახელი მიუთითებს ჩართულ ცხრილზე ან ობიექტზე. აპლიკაციის სახელი ავლენს, რომელმა აპლიკაციამ დაიწყო აქტივობა. ერთად, ეს სვეტები იძლევა აუდიტის ყოვლისმომცველ კვალს.
4.5 ფილტრების დაყენება ხმაურის შესამცირებლად
4.5.1 საერთო ფილტრის კრიტერიუმები
ფილტრების კონფიგურაცია შემდეგი მიდგომის გამოყენებით:
- გახსნა კვალის თვისებები დიალოგი.
- დააჭირეთ ღონისძიებების შერჩევა Tab.
- დაწკაპეთ სვეტის ფილტრები ღილაკი ქვედა მარჯვენა კუთხეში.
- აირჩიეთ სვეტი მარცხნივ მოცემული სიიდან.
- ფილტრის კრიტერიუმების კონფიგურაცია მარჯვენა მხარეს მდებარე პანელში.
- დაწკაპეთ OK ფილტრის გამოსაყენებლად.
აპლიკაციის სახელის ფილტრები იზოლირებენ აქტივობას კონკრეტული აპლიკაციებიდან. გაშალეთ ApplicationName სვეტი ფილტრის დიალოგურ ფანჯარაში, შეიყვანეთ თქვენი აპლიკაციის სახელი Like ველი და SQL Server Profiler მხოლოდ ამ აპლიკაციიდან იწერს მოვლენებს. ეს ფილტრი ფასდაუდებელია აპლიკაციასთან დაკავშირებული პრობლემების მოგვარებისას.
მონაცემთა ბაზის სახელის ფილტრები ზღუდავს კონკრეტული მონაცემთა ბაზებით აღრიცხვას. ფილტრი მონაცემთა ბაზის სახელის მიხედვით, რათა გამორიცხოთ სისტემის მონაცემთა ბაზის აქტივობა და ფოკუსირება მოახდინოთ თქვენი აპლიკაციის მონაცემთა ბაზებზე. შეიყვანეთ მონაცემთა ბაზის სახელები Like or თანაბარი ველი იმის მიხედვით, გჭირდებათ თუ არა ველური ნიშნების შესაბამისობა.
ხანგრძლივობის ფილტრები მხოლოდ ნელა მიმდინარე ოპერაციებს აღრიცხავს. დააყენეთ მინიმალური ზღვარი მეტი ან ტოლი ველი „ხანგრძლივობა“ სვეტის ქვეშ. მაგალითად, „ხანგრძლივობა >= 1000“-ის დაყენება მხოლოდ ერთ წამზე მეტ ხანს მიმდინარე მოვლენებს აღრიცხავს და სწრაფად შესრულებულ მოთხოვნებს ფილტრავს.
მომხმარებლის სახელის ფილტრები აკონტროლებენ კონკრეტული მომხმარებლის აქტივობას. ფილტრი LoginName-ის მიხედვით ხდება მონაცემთა ბაზის კონკრეტული მომხმარებლების მონიტორინგი. ეს მიდგომა ხელს უწყობს იმის იდენტიფიცირებას, თუ რომელი მომხმარებლები ასრულებენ პრობლემურ მოთხოვნებს ან აქვთ წვდომა მგრძნობიარე მონაცემებზე.
4.4.2 საუკეთესო პრაქტიკების ფილტრაცია
ეფექტური ფილტრაცია აბალანსებს მონაცემთა აღრიცხვასა და შესრულებაზე ზემოქმედებას. სისტემის ზედმეტი აქტივობის აღრიცხვის თავიდან ასაცილებლად, ყოველთვის გამოიყენეთ მინიმუმ ერთი ფილტრი. მონაცემთა ბაზის სახელის და აპლიკაციის სახელის ფილტრები უნდა იყოს საწყისი წერტილი კვალის უმეტესობისთვის.
წარმოების გარემოში თავიდან აიცილეთ ზედმეტად ფართო კვალი. გაუფილტრავი კვალი მონაცემების უზარმაზარ მოცულობას აღბეჭდავს, რაც პოტენციურად აუარესებს სერვერის მუშაობას და ანალიზს არაპრაქტიკულს ხდის. დააყენეთ კონკრეტული ფილტრის კრიტერიუმები, რომლებიც თქვენი პრობლემების მოგვარების მიზნებს ისახავს.
წარმოებაში განთავსებამდე შეამოწმეთ ფილტრები. ჯერ გაუშვით კვალი შემუშავების ან ტესტირების გარემოში, რათა დარწმუნდეთ, რომ ფილტრები აღრიცხავენ მოსალოდნელ მოვლენებს ზედმეტი დატვირთვის გარეშე. შეცვალეთ ფილტრის კრიტერიუმები შეგროვებული მონაცემების მოცულობის მიხედვით.
4.5 კვალის შაბლონებთან მუშაობა
4.5.1 ჩაშენებული შაბლონების მიმოხილვა
სტანდარტული შაბლონი უზრუნველყოფს დაბალანსებული მოვლენების აღრიცხვას, რაც შესაფერისია ზოგადი მონიტორინგისთვის. ის მოიცავს შეკითხვის შესრულების საერთო მოვლენებს, შენახული პროცედურების გამოძახებებს და შეცდომების ძირითად თვალყურის დევნებას. გამოიყენეთ ეს შაბლონი, როდესაც გჭირდებათ ყოვლისმომცველი ხილვადობა იმის ცოდნის გარეშე, თუ რა უნდა მოძებნოთ.
TSQL შაბლონი კონკრეტულად ორიენტირებულია მოთხოვნების შესრულებაზე მოვლენების მინიმალური შერჩევით. ის აღრიცხავს SQL:BatchCompleted და RPC:Completed მოვლენებს შესრულების ანალიზისთვის აუცილებელი სვეტებით. ეს შაბლონი სტანდარტულ შაბლონთან შედარებით ნაკლებ ხარჯებს გვთავაზობს.
Tuning შაბლონი ოპტიმიზაციას უკეთებს მოვლენების შერჩევას მონაცემთა ბაზის ძრავის Tuning Advisor ანალიზისთვის. ის აღრიცხავს მოვლენებსა და სვეტებს, რომლებიც საჭიროა სამუშაო დატვირთვის ანალიზისა და ინდექსის რეკომენდაციებისთვის. გამოიყენეთ ეს შაბლონი ავტომატური შესრულების რეგულირებისთვის ტრასების მომზადებისას.
TSQL_Replay შაბლონი მოიცავს ყველა მოვლენასა და სვეტს, რომელიც აუცილებელია კვალის გამეორების ფუნქციონირებისთვის. ის აღრიცხავს შესრულების ყოვლისმომცველ დეტალებს, რაც საშუალებას გაძლევთ რეპროდუცირება გაუკეთოთ ჩაწერილ სამუშაო დატვირთვებს სატესტო გარემოში. ეს შაბლონი წარმოქმნის უფრო დიდ კვალის ფაილებს მონაცემთა ფართო შეგროვების გამო.
4.5.2 მორგებული შაბლონების შექმნა
შექმენით საკუთარი შაბლონები შემდეგი ნაბიჯების მიხედვით:
- დაწკაპეთ ფაილი -> Templates -> ახალი შაბლონი…
- შეიყვანეთ აღწერითი სახელი ველში ახალი შაბლონის სახელი სფეროში.
- სურვილისამებრ, შეამოწმეთ ახალი შაბლონის არსებულ შაბლონზე დაფუძნება და თუ ნულიდან აწყობა არ გსურთ, აირჩიეთ არსებული შაბლონი:
- დააჭირეთ ღონისძიების შერჩევა ჩანართზე, შეცვალეთ კვალის შაბლონი თქვენთვის სასურველი მოვლენებით, სვეტებითა და ფილტრებით, ისევე როგორც თქვენ ჩვეულებრივი კვალით გაკეთება.
- დაწკაპეთ გადარჩენა შაბლონის შესანახად.
გუნდის წევრებთან გასაზიარებლად ან სარეზერვო ასლების შესაქმნელად შაბლონების ექსპორტი:
- დაწკაპეთ ფაილი -> Templates -> ექსპორტის შაბლონი.
- აირჩიეთ შაბლონი, რომლის ექსპორტიც გსურთ.
- გადადით თქვენთვის სასურველ შენახვის ადგილას.
- შეიყვანეთ ფაილის სახელი და დააწკაპუნეთ გადარჩენა.
- გააზიარეთ *.tdf ფაილი (SQL Server პროფილის შაბლონის ფაილი) სხვასთან ერთად SQL Server პროფილის მომხმარებლები.
4.6 კვალის გამომავალი მონაცემების შენახვა
ჩვეულებრივ, SQL Server Profiler აჩვენებს მოვლენებს კვალის ფანჯარაში, მაგრამ არ შეინახავს მათ. თქვენ შეგიძლიათ აირჩიოთ კვალის მონაცემების შენახვა ფაილში ან ცხრილში. კვალის თვისებები დიალოგური ფანჯარა ახალი კვალის შექმნისას.
4.6.1 ფაილში შენახვა
- ამ კვალის თვისებები დიალოგი, შემოწმება ფაილში შენახვა.
- ფაილების ბრაუზერის გასახსნელად დააწკაპუნეთ საქაღალდის ხატულაზე.
- გადადით თქვენთვის სასურველ შენახვის ადგილას.
- შეიყვანეთ ფაილის სახელი .trc გაფართოებით.
- დაწკაპეთ გადარჩენა.
- უცნობია დააყენეთ ფაილის მაქსიმალური ზომა ინდივიდუალური ფაილის ზომის შეზღუდვისთვის.
- ჩართვა ფაილის გადახვევის ჩართვა მრავალი ფაილის შესაქმნელად.
- სურვილისამებრ ჩართვა სერვერი ამუშავებს კვალის მონაცემებს სერვერის მხარის ტრასებისთვის.
ფაილის ზომის მართვა ხელს უშლის დისკის სივრცის ამოწურვას. დააყენეთ ფაილის მაქსიმალური ზომა გონივრულ მნიშვნელობაზე, როგორიცაა 500 მბ ან 1 გბ, დისკზე არსებული სივრცისა და მოსალოდნელი კვალის ხანგრძლივობის მიხედვით. ფაილის გადატანა ავტომატურად ქმნის ახალ ფაილებს, როდესაც ზომის ლიმიტი მიიღწევა, ფაილის სახელს რიცხვის დამატებით.
4.6.2 ცხრილში შენახვა
- ამ კვალის თვისებები დიალოგი, შემოწმება ცხრილში შენახვა.
- ის დანიშნულების ცხრილი დიალოგი გამოჩნდება.
- აირჩიეთ სერვერი სიიდან Server ძირს დაგდება.
- აირჩიეთ მონაცემთა ბაზა სიიდან მონაცემთა ბაზა ძირს დაგდება.
- აირჩიეთ არსებული ცხრილი ან შეიყვანეთ ახალი ცხრილის სახელი მაგიდის სფეროში.
- დაწკაპეთ OK დაადასტუროს
- სურვილისამებრ დაყენებული მაქსიმალური რიგების დაყენება ცხრილის ზომის შესაზღუდად.
ცხრილებში შენახვისას მუშაობის მახასიათებლების გათვალისწინებაა საჭირო. ცხრილებში შენახვა ფაილების შენახვასთან შედარებით დამატებით ხარჯებს იწვევს, რადგან SQL Server კვალის მონაცემები უნდა ჩაიწეროს შენახვის ძრავის მეშვეობით. გამოიყენეთ ცხრილის საცავი, როდესაც გჭირდებათ კვალის მონაცემების დაუყოვნებლივ მოთხოვნა T-SQL-ის გამოყენებით.
მონაცემთა შენახვა მნიშვნელოვანი ხდება ცხრილებზე დაფუძნებული ტრასირებისთვის. დააყენეთ მაქსიმალური ლიმიტი რიგების შესახებ, რათა თავიდან აიცილოთ ცხრილების ზედმეტად გაზრდა. მუშაობის შესანარჩუნებლად რეგულარულად დაარქივეთ ან წაშალეთ ძველი ტრასირების მონაცემები. უკეთესი მართვისთვის განიხილეთ დიდი ტრასირების ცხრილების დანაყოფებად დაყოფა.
5. მართვა და მართვა SQL Server კვალი
5.1 კვალის დაწყება, პაუზა და შეჩერება
მართეთ კვალის შესრულება ხელსაწყოთა პანელის ღილაკების გამოყენებით:
- Მწვანე დასაწყისი ღილაკი თქვენი კონფიგურაციის მიხედვით იწყებს მოვლენების აღბეჭდვას.
- დაწკაპეთ პაუზა მონაცემთა შეგროვების დროებით შეჩერება კავშირის დაკარგვის გარეშე.
- დაწკაპეთ გაჩერება კვალის დასასრულებლად და კავშირის დასახურად.
მენიუს ელემენტების მეშვეობით:
ტრასირების ფანჯარაში ნებისმიერ ჩანაწერზე მარჯვენა ღილაკით დაწკაპუნებით:
კვალის სასიცოცხლო ციკლის მართვა გავლენას ახდენს სერვერის რესურსებზე. აქტიური კვალი მოიხმარს მეხსიერებას და დამუშავების სიმძლავრეს აღრიცხული მოვლენების მოცულობის პროპორციულად. დატვირთვის შესამცირებლად, შეაჩერეთ კვალი იმ პერიოდებში, როდესაც მონიტორინგი არ არის საჭირო. რესურსების გასათავისუფლებლად, მთლიანად შეაჩერეთ კვალი ანალიზის დასრულების შემდეგ.
კლიენტის მხარის ტრასები მოითხოვს აქტიურ Profiler კავშირს. დახურვა SQL Server პროფილის ფანჯარა მყისიერად წყვეტს კლიენტის მხარის ტრასების შექმნას. სხვა აპლიკაციებში მუშაობისას ტრასების გასაშვებად, პროფილის ფანჯარა მისი დახურვის ნაცვლად მინიმუმამდე დაიყვანეთ.
5.2 რეალურ დროში კვალის მონიტორინგი
აკონტროლეთ აღრიცხული მოვლენები მათი მიმდინარეობისას მთავარ კვალის ფანჯარაში. თითოეული რიგი წარმოადგენს ერთ მოვლენას სვეტებით, რომლებიც აჩვენებს მოვლენის თვისებებს. ბადე განუწყვეტლივ განახლდება აქტიური კვალის დროს, ნაგულისხმევად კი ბოლოში აჩვენებს უახლეს მოვლენებს.
მოვლენების სიხშირისა და მახასიათებლების დაკვირვებით, შეგიძლიათ განსაზღვროთ კანონზომიერებები და პრობლემები. ხანგრძლივი მოვლენები მიუთითებს მუშაობის პრობლემებზე. ხშირი შეცდომის შემთხვევები მიუთითებს აპლიკაციის პრობლემებზე. უჩვეულო შესვლის აქტივობა შეიძლება უსაფრთხოების პრობლემებზე მიუთითებდეს. რეალურ დროში მონიტორინგი საშუალებას იძლევა დაუყოვნებლივ რეაგირება მოხდეს წარმოქმნილ პრობლემებზე.
კონკრეტული შემთხვევების შესასწავლად გადაახვიეთ აღრიცხულ მოვლენებს შორის. დააწკაპუნეთ ნებისმიერ სტრიქონზე მოვლენის ასარჩევად და მისი სრული დეტალების სანახავად. ორჯერ დააწკაპუნეთ მოვლენებზე, რათა გახსნათ დეტალური თვისებების დიალოგები, რომლებიც აჩვენებს ყველა სვეტის მნიშვნელობას. გამოიყენეთ გადახვევის დაბლოკვის ფუნქცია, რათა თავიდან აიცილოთ ავტომატური გადახვევა ისტორიული მოვლენების გადახედვისას.
5.3 მრავალი ერთდროული კვალის მართვა
ერთდროულად რამდენიმე კვალის გაშვება უზრუნველყოფს მოქნილობას რთული მონიტორინგის სცენარებისთვის. შექმენით ცალკეული კვალი მონაცემთა ბაზის აქტივობის სხვადასხვა ასპექტისთვის, მაგალითად, ერთი კვალი შესრულების მონიტორინგისთვის და მეორე უსაფრთხოების აუდიტისთვის. თითოეული კვალი დამოუკიდებლად მუშაობს საკუთარი კონფიგურაციით.
რესურსების განაწილება კრიტიკული ხდება მრავალი კვალის გამოყენებისას. თითოეული აქტიური კვალი მოიხმარს მეხსიერებას, პროცესორს და შესაძლოა დისკის შეყვანა/გამოსვლასაც. შეზღუდეთ ერთდროული კვალის რაოდენობა და დარწმუნდით, რომ თითოეული კვალი იყენებს შესაბამის ფილტრებს დატვირთვის მინიმიზაციისთვის. აკონტროლეთ სერვერის მუშაობა მრავალი კვალის გაშვებისას.
მაღალი დატვირთვის მქონე კვალის გადაფარვის თავიდან ასაცილებლად, კოორდინირებული კვალის დროის შერჩევა. თუ შესაძლებელია, რესურსების ინტენსიური კვალის გაშვება დაბალი აქტივობის პერიოდებში. სხვადასხვა კვალის გაშვების ნაცვლად, სხვადასხვა დროს დაგეგმეთ.
5.4 კლიენტის მხარის კვალი სერვერის მხარის კვალის წინააღმდეგ
ნაგულისხმევად, ახლად შექმნილი კვალი კლიენტის მხარის კვალია, რომელიც მოითხოვს აქტიურ კავშირს SQL Server Profiler მონაცემთა ბაზის სერვერზე. კვალი მყისიერად წყდება, თუ კავშირი დაიკარგება ან Profiler დაიხურება.
ასევე შეგიძლიათ შექმნათ სერვერის მხარეს არსებული კვალი, რომელიც მთლიანად მასზე იმუშავებს. SQL Server ეგზემპლარი აქტიური Profiler კავშირის საჭიროების გარეშე. სერვერის მხარეს კვალი განაგრძობს მუშაობას დახურვის შემდეგაც კი. SQL Server პროფილიერი, რომელიც წერს მონაცემებს მითითებულ ფაილის ადგილას.
სერვერის მხარის კვალის შესაქმნელად:
- დააჭირეთ ფაილს -> ახალი კვალი ...
- ამ კვალის თვისებები დიალოგი, შემოწმება ფაილში შენახვა
- დააყენეთ ფაილის ადგილმდებარეობა და სხვა პარამეტრები.
- ჩართვა სერვერი ამუშავებს კვალის მონაცემებს სერვერის მხარის კვალის შესაქმნელად.
შესრულების შედეგები მნიშვნელოვნად განსხვავდება კვალის ტიპებს შორის. კლიენტის მხარის კვალი მონაცემებს ქსელის საშუალებით Profiler ინტერფეისზე გადასცემს, რაც ზრდის შეყოვნებას და გამტარუნარიანობის მოხმარებას. სერვერის მხარის კვალი ნაკლებ დატვირთვას იწვევს, რადგან მონაცემები პირდაპირ სერვერზე დისკზე იწერება.
გამოიყენეთ კლიენტის მხარის კვალი ad-hoc პრობლემების გადასაჭრელად, სწრაფი დიაგნოსტიკური სესიებისთვის და იმ სიტუაციებისთვის, სადაც მყისიერი ვიზუალური უკუკავშირი ფასეულია. აირჩიეთ სერვერის მხარის კვალი წარმოების მონიტორინგისთვის, ხანგრძლივი ჩაწერისთვის და სცენარებისთვის, რომლებიც მოითხოვს უყურადღებო მუშაობას.
6. გაანალიზება SQL Server პროფილის მონაცემები
6.1 შენახული კვალის გახსნა და გადახედვა
შენახული კვალის ფაილების ჩატვირთვა შემდეგი ნაბიჯების გამოყენებით:
- დაწყება SQL Server პროფილერი.
- დაწკაპეთ ფაილი -> ღიაა -> კვალის ფაილი.
- გადადით ტრასირების ფაილის მდებარეობაზე.
- აირჩიეთ .trc ფაილი და დააწკაპუნეთ ღიაა.
- კვალის მონაცემები იტვირთება მთავარ ფანჯარაში.
ჩატვირთეთ კვალის ცხრილები ამ პროცესის შემდეგ:
- დაწკაპეთ ფაილი -> ღიაა -> კვალის ცხრილი.
- დაუკავშირდით სერვერს, რომელზეც განთავსებულია კვალის ცხრილი.
- აირჩიეთ მონაცემთა ბაზა სიიდან მონაცემთა ბაზა ძირს დაგდება.
- აირჩიეთ ცხრილი სიიდან მაგიდის ძირს დაგდება.
- დაწკაპეთ OK მონაცემების ჩასატვირთად.
6.2 კვალის მონაცემების ფილტრაცია და ძიება
6.2.1 აღების შემდგომი ფილტრაცია
ჩატვირთულ კვალის მონაცემებზე ფილტრების გამოყენება შემდეგი ნაბიჯების გამოყენებით:
- დაწკაპეთ რედაქტირება -> მოვძებნით ან დააჭირეთ Ctrl + F.
- შეიყვანეთ საძიებო ტექსტი იპოვე რა სფეროში.
- აირჩიეთ სვეტი, საიდანაც გსურთ ძიების ჩატარება Ჩაიხედე ძირს დაგდება.
- დაწკაპეთ იპოვნე შემდეგი შესაბამისი მოვლენების მოსაძებნად.
სვეტებზე დაფუძნებული ფილტრაცია აზუსტებს ნაჩვენებ მონაცემებს მოვლენების ხელახლა აღრიცხვის გარეშე. დააწკაპუნეთ მაუსის მარჯვენა ღილაკით ნებისმიერ სვეტის სათაურზე და აირჩიეთ ფილტრის პარამეტრები კონტექსტური მენიუდან. შეიყვანეთ ფილტრის კრიტერიუმები მხოლოდ შესაბამისი რიგების საჩვენებლად. ეს მიდგომა აჩქარებს ანალიზს შეუსაბამო მოვლენების დამალვით.
6.2.2 კონკრეტული მოვლენების პოვნა
ძიების ფუნქცია ხელს უწყობს კონკრეტული მოვლენების პოვნას დიდ კვალის ფაილებში. გამოიყენეთ „ძებნა“ დიალოგური ფანჯარა ტექსტის შინაარსის, მოვლენის ტიპის ან სვეტის მნიშვნელობის მიხედვით მოსაძებნად. რეგულარული გამოსახულებები საჭიროების შემთხვევაში საშუალებას იძლევა ძიების რთული ნიმუშების.
ანალიზის დროს სწრაფი მითითებისთვის მნიშვნელოვანი მოვლენების მონიშვნა. საინტერესო მოვლენებზე მარჯვენა ღილაკით დააწკაპუნეთ და მათ მოსანიშნად აირჩიეთ მონიშვნის პარამეტრები. მონიშვნებს შორის გადაადგილდით კლავიატურის მალსახმობების ან მენიუს ბრძანებების გამოყენებით, რაც ხელს შეუწყობს დაკავშირებული მოვლენების შედარებას.
6.3 მოვლენების დაჯგუფება და აგრეგირება
მოვლენები დააჯგუფეთ სვეტის მნიშვნელობების მიხედვით, რათა ამოიცნოთ შაბლონები და შეაჯამოთ აქტივობა. დააწკაპუნეთ მარჯვენა ღილაკით ნებისმიერ სვეტის სათაურზე და აირჩიეთ დაჯგუფება ამ სვეტის მიხედვით მოვლენების ორგანიზებისთვის. დაჯგუფებული ხედები მსგავს მოვლენებს ერთად აკეცავს, რაც საერთო ნიმუშების დანახვას აადვილებს.
აგრეგირებული ხედები იძლევა კვალის მონაცემების სტატისტიკურ შეჯამებებს. დააჯგუფეთ TextData-ს მიხედვით, რათა ნახოთ, რამდენჯერ შესრულდა თითოეული მოთხოვნა. დააჯგუფეთ LoginName-ის მიხედვით, რათა ნახოთ თითოეული მომხმარებლის აქტივობის შეჯამებები. აგრეგაცია ავლენს ნიმუშებს, რომლებიც დაუყოვნებლივ არ არის აშკარა დეტალურ მოვლენების სიებში.
კონკრეტულ კატეგორიებში გადასასვლელად გაშალეთ და ჩაკეცეთ ჯგუფები. დაჯგუფებული მოვლენების საჩვენებლად ან დასამალად დააწკაპუნეთ ჯგუფების სათაურების გვერდით არსებულ პლუს და მინუს ხატულებზე. ეს იერარქიული ხედი ხელს უწყობს ზემოდან ქვემოთ ანალიზს, დაწყებული მაღალი დონის ნიმუშებით და დამთავრებული დეტალების ჩაღრმავებით.
6.4 SQL მოთხოვნების ამოღება ტრასებიდან
ამოიღეთ მოთხოვნები კვალის მონაცემებიდან შემდეგი ნაბიჯების შემდეგ:
- იპოვეთ თქვენთვის საინტერესო მოთხოვნა კვალის ბადეში.
- დააწკაპუნეთ სტრიქონზე მოვლენის ასარჩევად.
- სრული მოთხოვნის ტექსტი იხილეთ ქვედა პანელში.
- პრეს Ctrl + A ყველა მოთხოვნის ტექსტის ასარჩევად.
- პრეს Ctrl + C მოთხოვნის ტექსტის კოპირებისთვის.
- ჩასვით მოთხოვნა Management Studio-ში შემდგომი ანალიზისთვის.
პრობლემური მოთხოვნების იდენტიფიცირება შესრულების სვეტების მიხედვით დახარისხებით მოახდინეთ. შესრულების დროის მიხედვით დახარისხებისთვის დააწკაპუნეთ ხანგრძლივობის სვეტის სათაურზე. ყველაზე ნელი მოთხოვნები დახარისხების მიმართულების მიხედვით ზედა ან ქვედა ნაწილში გამოჩნდება. ანალოგიურად, რესურსების ინტენსიური ოპერაციების იდენტიფიცირებისთვის დაალაგეთ CPU-ს, წაკითხვის ან ჩაწერის მიხედვით.
ტესტირებისთვის ექსპორტირებული მოთხოვნები მათი კვალის აკრეფიდან მოთხოვნების ფანჯრებში კოპირებით. მოდიფიცირებული მოთხოვნების შეცვლა ოპტიმიზაციის სტრატეგიების შესამოწმებლად. შესრულების გეგმებისა და შესრულების მეტრიკის შედარება ორიგინალურ და ოპტიმიზებულ ვერსიებს შორის.
6.5 მოვლენების კორელაცია და შესრულების ნაკადის გაგება
მშობელ-შვილობილი მოვლენების ურთიერთობები აჩვენებს შესრულების იერარქიებს. SQL:BatchStarting მოვლენები მშობელი SQL:StmtStarting მოვლენები, რომლებიც თავის მხრივ მშობელი პროცედურის შესრულების მოვლენებია. ამ ურთიერთობების გაგება დაგეხმარებათ თქვენი კოდის სრული შესრულების გზების თვალყურის დევნებაში.
ტრანზაქციების თვალყურის დევნება აკავშირებს დაკავშირებულ მოვლენებს დროთა განმავლობაში. გამოიყენეთ SPID სვეტი მოვლენების სესიის მიხედვით დასაჯგუფებლად. სესიის ფარგლებში მოვლენები ქრონოლოგიური თანმიმდევრობით ხდება, რაც აჩვენებს ოპერაციების თანმიმდევრობას. ეს ხედი ავლენს, თუ როგორ ურთიერთქმედებენ სხვადასხვა ოპერაციები ტრანზაქციებში.
მოვლენების კორელაცია გაზიარებული სვეტის მნიშვნელობების შესწავლით. იდენტური SPID-ის მქონე მოვლენები ერთსა და იმავე სესიაში მოხდა. იგივე ApplicationName-ის მქონე მოვლენები ერთი და იგივე აპლიკაციიდან მომდინარეობს. გამოიყენეთ ეს კორელაციები რთული შესრულების სცენარების გასაგებად.
7 საერთო SQL Server პროფილერის გამოყენების შემთხვევები
7.1 შესრულების პრობლემების მოგვარება
7.1.1 ნელი მოთხოვნების იდენტიფიცირება
ნელი მოთხოვნების აღბეჭდვა შემდეგი კონფიგურაციის გამოყენებით:
- შექმენით ახალი კვალი, გამოიყენეთ TSQL შაბლონი.
- ამ ღონისძიებების შერჩევა ჩანართი, დადასტურება SQL:BatchCompleted მდე RPC: დასრულებულია შერჩეულია.
- დაწკაპეთ სვეტის ფილტრები.
- აირჩიეთ ხანგრძლივობა სვეტის სიიდან.
- შეიყვანეთ 1000000-ში მეტი ან ტოლი ველი 1 წამზე მეტი ხნის განმავლობაში მიმდინარე მოთხოვნების დასაფიქსირებლად.
- დაწკაპეთ OK და დაიწყეთ კვალის აღება.
- გაუშვით კვალი პიკური გამოყენების პერიოდებში.
- შეაჩერეთ კვალი და დაალაგეთ ხანგრძლივობის მიხედვით, რათა გამოავლინოთ ყველაზე ნელი მოთხოვნები.
ხანგრძლივობაზე დაფუძნებული ანალიზი ავლენს შესრულების დროის ნიმუშებს. დაალაგეთ დაფიქსირებული მოვლენები ხანგრძლივობის სვეტის მიხედვით, რათა პირველ რიგში ნახოთ ყველაზე ხანგრძლივი ოპერაციები. შეამოწმეთ TextData სვეტი ამ მოვლენებისთვის, რათა დაადგინოთ შეფერხებებზე პასუხისმგებელი ფაქტობრივი მოთხოვნები.
CPU-სა და I/O ინტენსიური მოთხოვნები სხვადასხვა ოპტიმიზაციის მიდგომებს მოითხოვს. დაალაგეთ CPU სვეტის მიხედვით, რათა იპოვოთ პროცესორთან დაკავშირებული მოთხოვნები, რომლებიც ალგორითმულ გაუმჯობესებას საჭიროებენ. დაალაგეთ წაკითხვის ან ჩაწერის სვეტების მიხედვით, რათა ამოიცნოთ I/O-სთან დაკავშირებული მოთხოვნები, რომლებიც ინდექსირდება ან მოთხოვნების გადაწერა სარგებლიანია.
7.1.2 ბლოკირებისა და ჩიხების აღმოჩენა
დაბლოკვის აღმოჩენის კონფიგურაცია შემდეგი ნაბიჯების მიხედვით:
- შექმენით ახალი კვალი.
- ამ ღონისძიებების შერჩევა ჩანართი, გაშლა საკეტები.
- აირჩიეთ საკეტი: ჩიხი მდე საკეტი: ჩიხური ჯაჭვი.
- Expand შეცდომები და გაფრთხილებები.
- აირჩიეთ დაბლოკილი პროცესის ანგარიში.
- სვეტების ჩართვა: SPID, ტექსტური მონაცემები, მონაცემთა ბაზის სახელი, შესვლის სახელი.
- დაიწყეთ კვალის აღრიცხვა და აკონტროლეთ დაბლოკვის მოვლენები.
დაბლოკვის მოვლენების მონიტორინგი ავლენს პარალელური პრობლემების არსებობას, რომლებიც გავლენას ახდენს აპლიკაციის მუშაობაზე. დაბლოკვა: ჩიხში შესული მოვლენები მიუთითებს, თუ როდის SQL Server ჩიხური სიტუაციების აღმოჩენა და მოგვარება. Lock:Deadlock ჯაჭვური მოვლენები აჩვენებს ჩიხში ჩართულ პროცესებს.
ჩიხის გრაფიკები ჩიხის სცენარების ვიზუალურ წარმოდგენას იძლევა. ჩიხის მოვლენის დროს, TextData სვეტი შეიცავს XML ფაილს, რომელიც აღწერს ჩიხს. დააკოპირეთ ეს XML ფაილში და გახსენით იგი SQL Server Management Studio-ში შეგიძლიათ იხილოთ გრაფიკული ჩიხის დიაგრამა, რომელიც აჩვენებს, რომელმა პროცესებმა დაბლოკეს ერთმანეთი.
7.1.3 დაკარგული ინდექსების პოვნა
ინდექსის ანალიზისთვის სამუშაო დატვირთვის აღრიცხვა ამ ნაბიჯების გამოყენებით:
- შექმენით ახალი კვალი, გამოიყენეთ Tuning შაბლონი.
- დააკონფიგურირეთ კვალი ფაილში შესანახად.
- გაუშვით კვალი წარმომადგენლობითი დატვირთვის პერიოდებში.
- შეაგროვეთ მინიმუმ რამდენიმე საათიანი აქტივობა.
- შეაჩერე კვალი და შეინახეთ ფაილი.
- მონაცემთა ბაზის ძრავის რეგულირების მრჩევლის გაშვება.
- აირჩიეთ კვალის ფაილი, როგორც სამუშაო დატვირთვის წყარო.
- ინდექსის რეკომენდაციების მისაღებად ჩაატარეთ ანალიზი.
მონაცემთა ბაზის ძრავის რეგულირების მრჩეველთან ინტეგრაცია ავტომატიზირებს ინდექსის რეკომენდაციას. რეგულირების მრჩეველი აანალიზებს შეგროვებულ სამუშაო დატვირთვას და გვთავაზობს ინდექსებს, რომლებიც გააუმჯობესებს მუშაობას. დანერგვამდე ყურადღებით გადახედეთ რეკომენდაციებს, გაითვალისწინეთ შენახვის ზედნადები და ტექნიკური მომსახურების ხარჯები.
7.2 აპლიკაციის პრობლემების მოგვარება
7.2.1 აპლიკაციის შეცდომების გამართვა
აპლიკაციის შეცდომების თვალყურის დევნება ამ კონფიგურაციის გამოყენებით:
- შექმენით ახალი კვალი.
- Expand შეცდომები და გაფრთხილებები ღონისძიებების შერჩევის ჩანართში.
- აირჩიეთ გამონაკლისი, მომხმარებლის შეცდომის შეტყობინებადა ყურადღება.
- სვეტების ჩართვა: შეცდომა, ტექსტური მონაცემები, აპლიკაციის სახელი, SPID.
- გაფილტრე აპლიკაციის სახელი თქვენს განაცხადზე ფოკუსირებისთვის.
- დაიწყეთ კვალის აღრიცხვა და გაიმეორეთ შეცდომის სცენარი.
- დიაგნოსტიკური ინფორმაციის მისაღებად გადახედეთ დაფიქსირებულ შეცდომის მოვლენებს.
შეცდომების თვალყურის დევნება ავლენს გამონაკლისის დეტალებს, რომლებიც ხშირად დამალულია აპლიკაციებისგან. შეცდომის სვეტი შეიცავს გამონაკლისებს, რომლებიც ხშირად იმალება აპლიკაციებისგან. შეცდომის სვეტი შეიცავს გამონაკლისებს. SQL Server შეცდომის ნომრები. TextData სვეტი აჩვენებს შეცდომის შეტყობინებებს და მოთხოვნას, რომელმაც შეცდომა გამოიწვია. სიმძიმის სვეტი მიუთითებს შეცდომის სიმძიმის დონეებს.
გამონაკლისების მონიტორინგი აღრიცხავს გაშვების დროს არსებულ პრობლემებს, მათ შორის შეზღუდვების დარღვევებს, ნებართვის შეცდომებს და ვადის ამოწურვის მოვლენებს. დააკავშირეთ შეცდომის მოვლენები წინა მოთხოვნის მოვლენებთან, რათა გაიგოთ, რამ გამოიწვია გამონაკლისები.
7.2.2 აპლიკაციასა და მონაცემთა ბაზას შორის კომუნიკაციის თვალყურის დევნება
აპლიკაციის აქტივობის მონიტორინგი შემდეგი ნაბიჯების მიხედვით:
- შექმენით ახალი კვალი, გამოიყენეთ სტანდარტული შაბლონი.
- დაწკაპეთ სვეტის ფილტრები.
- აირჩიეთ აპლიკაციის სახელი და შეიყვანეთ თქვენი აპლიკაციის სახელი Like სფეროში.
- სურვილისამებრ, გაფილტრეთ ჰოსტის სახელი კონკრეტული სერვერების იზოლირებისთვის.
- დაიწყეთ კვალის აღრიცხვა აპლიკაციის ოპერაციების დროს.
- გადახედეთ ჩაწერილ მოვლენებს მონაცემთა ბაზაში ყველა ურთიერთქმედების სანახავად.
აპლიკაციის სახელის ფილტრაცია იზოლირებს მოთხოვნებს კონკრეტული აპლიკაციებიდან. SQL Server ადგენს აპლიკაციის სახელს კავშირის სტრიქონებიდან, რაც აადვილებს ინდივიდუალური აპლიკაციების თვალყურის დევნებას მრავალაპლიკაციურ გარემოში. ეფექტური ფილტრაციისთვის დარწმუნდით, რომ თქვენი კავშირის სტრიქონი შეიცავს აპლიკაციის სახელის პარამეტრს.
კავშირის თვალყურის დევნება აჩვენებს სესიის სასიცოცხლო ციკლს, მათ შორის შესვლას, მოთხოვნის შესრულებას და გასვლას. აკონტროლეთ კავშირების შექმნის სიჩქარე კავშირების გაერთიანების პრობლემების დასადგენად. კავშირების გადაჭარბებული გათიშვა მიუთითებს აპლიკაციის კონფიგურაციის პოტენციურ პრობლემებზე.
7.2.3 აპლიკაციის ქცევის ვალიდაცია
გადაამოწმეთ აპლიკაციის მოსალოდნელი ქცევა კვალის ანალიზის გამოყენებით. აღბეჭდეთ მონაცემთა ბაზის ყველა ოპერაცია ბიზნეს ტრანზაქციის დროს და გადაამოწმეთ, რომ მოთხოვნები სწორად შესრულდა შესაბამისი თანმიმდევრობით. შეადარეთ რეალურად აღბეჭდილი მოთხოვნები მოსალოდნელ ქცევას შეუსაბამობების დასადგენად.
პარამეტრების ვალიდაცია უზრუნველყოფს, რომ აპლიკაციები სწორ მნიშვნელობებს გადასცემენ შენახულ პროცედურებსა და პარამეტრიზებულ მოთხოვნებს. შეამოწმეთ ჩაწერილი მოთხოვნის ტექსტი, რათა დაადასტუროთ, რომ პარამეტრის მნიშვნელობები ემთხვევა მოლოდინებს. არასწორი პარამეტრები ხშირად იწვევს ლოგიკურ შეცდომებს, რომლებიც არასწორ ბიზნეს შედეგებად ვლინდება.
7.3 უსაფრთხოების აუდიტი
7.3.1 შესვლის მცდელობების მონიტორინგი
დააკონფიგურირეთ შესვლის მონიტორინგი ამ ნაბიჯების გამოყენებით:
- შექმენით ახალი კვალი.
- Expand უსაფრთხოების აუდიტი ღონისძიებების შერჩევის ჩანართში.
- აირჩიეთ აუდიტის შესვლა, აუდიტიდან გასვლადა აუდიტის შესვლა ვერ მოხერხდა.
- სვეტების ჩართვა: შესვლის სახელი, ჰოსტის სახელი, აპლიკაციის სახელი, დაწყების დრო.
- დაიწყეთ კვალის აღრიცხვა ავტორიზაციის აქტივობის მონიტორინგისთვის.
- გადახედეთ წარუმატებელი შესვლის მოვლენებს უსაფრთხოების პოტენციური პრობლემების აღმოსაჩენად.
წარმატებული და წარუმატებელი შესვლა უზრუნველყოფს ყოვლისმომცველ ავტორიზაციის თვალყურის დევნებას. აუდიტის შესვლის მოვლენები აღრიცხავს წარმატებულ ავტორიზაციის მცდელობებს მომხმარებლის ვინაობისა და წყაროს ინფორმაციის ჩათვლით. აუდიტის შესვლის წარუმატებელი მოვლენები მიუთითებს წარუმატებელ ავტორიზაციის მცდელობებზე, რომლებიც შეიძლება წარმოადგენდეს თავდასხმებს ან კონფიგურაციის პრობლემებს.
ავტორიზაციის თვალყურის დევნება ავლენს მონაცემთა ბაზაში წვდომის ნიმუშებს. აკონტროლეთ შესვლის სიხშირე უჩვეულო აქტივობის აღმოსაჩენად. შესვლის მრავალჯერადი წარუმატებელი მცდელობა, რასაც მოჰყვება წარმატებული შესვლა, შეიძლება მიუთითებდეს ავტორიზაციის მონაცემების კომპრომეტირებაზე. მოულოდნელი ადგილებიდან წარუმატებელი შესვლა გამოძიების საჭიროებას წარმოადგენს.
7.3.2 მონაცემებზე წვდომისა და ცვლილებების თვალყურის დევნება
მონაცემებზე წვდომის მონიტორინგი ამ კონფიგურაციის გამოყენებით:
- შექმენით ახალი კვალი.
- Expand უსაფრთხოების აუდიტი.
- აირჩიეთ აუდიტის მონაცემთა ბაზის ობიექტზე წვდომა.
- სვეტების ჩართვა: ობიექტის სახელი, შესვლის სახელი, ტექსტური მონაცემები, მონაცემთა ბაზის სახელი.
- გაფილტრე ობიექტის სახელი კონკრეტული მგრძნობიარე ცხრილების მონიტორინგისთვის.
- დაიწყეთ კვალის აღრიცხვა წვდომის მცდელობების აღსაწერად.
SELECT, INSERT, UPDATE, DELETE თვალთვალი უზრუნველყოფს მონაცემთა მოდიფიკაციის ყოვლისმომცველ აუდიტს. SQL:BatchCompleted მოვლენების აღბეჭდვა შესაბამისი ფილტრებით, მონაცემებზე წვდომის ყველა ოპერაციის მონიტორინგისთვის. ფილტრაცია ObjectName-ის ან TextData-ს მიხედვით, მგრძნობიარე ცხრილებზე ფოკუსირებისთვის.
მგრძნობიარე მონაცემებზე წვდომა მოითხოვს ფრთხილად მონიტორინგს უსაფრთხოების პოლიტიკის დაცვის უზრუნველსაყოფად. შექმენით ტრასები სპეციალურად პერსონალური ინფორმაციის, ფინანსური მონაცემების ან სხვა კონფიდენციალური ინფორმაციის შემცველი ცხრილებისთვის. რეგულარულად გადახედეთ წვდომის ნიმუშებს მონაცემებზე შეუსაბამო წვდომის დასადგენად.
საეჭვო აქტივობის აღმოჩენა შესაძლებელია დაფიქსირებულ კვალში არსებული შეკითხვის ნიმუშების ანალიზით. მოძებნეთ უჩვეულო შეკითხვები, რომლებიც არ შეესაბამება აპლიკაციის ნორმალურ ქცევას. SELECT ოპერატორები, რომლებსაც არ აქვთ WHERE პუნქტი, მთელი ცხრილების მოძიებით, შეიძლება მიუთითებდეს მონაცემთა ექსტრაქციის მცდელობებზე.
პრივილეგიების ესკალაციის მცდელობები ჩნდება, როგორც ნებართვის შეცდომები ან ადმინისტრაციული ბრძანებების შესრულების მცდელობები. აკონტროლეთ სისტემის ცხრილებზე წვდომის, სერვერის კონფიგურაციის შეცვლის ან პრივილეგირებული ანგარიშების შექმნის მცდელობების მოთხოვნები. გაფილტრეთ შეცდომის მოვლენები და გადახედეთ TextData სვეტს საეჭვო აქტივობის აღმოსაჩენად.
7.4 სიმძლავრის დაგეგმვა და სამუშაო დატვირთვის ანალიზი
ნორმალური ოპერაციების დროს წარმომადგენლობითი სამუშაო დატვირთვის აღრიცხვით დაადგინეთ საბაზისო ნიშნულები. სტანდარტული აქტივობის ნიმუშების გასაგებად, შეასრულეთ კვალი ტიპურ სამუშაო საათებში. შეინახეთ ეს კვალი, როგორც შესრულების საბაზისო ნიშნულები მომავალი შედარებისთვის.
პიკური დატვირთვის იდენტიფიკაცია ავლენს, როდის განიცდის თქვენი სისტემა მაქსიმალურ დატვირთვას. აღრიცხეთ კვალი სხვადასხვა დროის პერიოდში, მათ შორის სამუშაო საათებში, პარტიული დამუშავების ფანჯრებსა და სამუშაო საათების შემდეგ აქტივობაში. გააანალიზეთ მოვლენების რაოდენობა და რესურსების მოხმარება პიკური პერიოდების დასადგენად.
რესურსების გამოყენების ნიმუშები სამუშაო დატვირთვის ანალიზიდან გამომდინარეობს. დააჯგუფეთ მოვლენები დროის ინტერვალებით, რათა ნახოთ აქტივობის განაწილება მთელი დღის განმავლობაში. გამოთვალეთ CPU-ს, დისკის შეყვანა/გამოსვლა და ხანგრძლივობის ჯამური მეტრიკები რესურსების მოხმარების რაოდენობრივი განსაზღვრისთვის. გამოიყენეთ ეს მონაცემები სიმძლავრის განახლების დასაგეგმად ან ოპტიმიზაციის შესაძლებლობების დასადგენად.
8. Მოწინავე SQL Server პროფილირების ტექნიკები
8.1 სერვერის მხარის კვალის შექმნა T-SQL-ის გამოყენებით
8.1.1 sp_trace_create-ის და მასთან დაკავშირებული პროცედურების გამოყენება
სერვერის მხარეს კვალის შექმნა პროგრამულად T-SQL შენახული პროცედურების გამოყენებით. ეს მიდგომა საშუალებას იძლევა კვალის ავტომატიზირებული შექმნისა და მართვის გარეშე. SQL Server Profiler-ის გრაფიკული ინტერფეისი.
სერვერის მხარის კვალის განსაზღვრა ამ მაგალითის კოდის გამოყენებით:
- გამოაცხადეთ ცვლადები კვალის ID-სა და ფაილის ბილიკისთვის.
- ახალი კვალის შესაქმნელად გამოიძახეთ sp_trace_create.
- მოვლენებისა და სვეტების დასამატებლად გამოიყენეთ sp_trace_setevent.
- სურვილისამებრ, ფილტრების კონფიგურაციისთვის შეგიძლიათ გამოიყენოთ sp_trace_setfilter.
- კვალის აღრიცხვის დასაწყებად გამოიძახეთ sp_trace_setstatus.
sp_trace_create პროცედურა ახდენს ახალი კვალის განმარტების ინიციალიზაციას. მიუთითეთ გამომავალი ფაილის გზა, ფაილის მაქსიმალური ზომა და გადართვის პარამეტრები. პროცედურა აბრუნებს კვალის ID-ს, რომელიც გამოიყენება შემდგომ პროცედურის გამოძახებებში კვალის კონფიგურაციისთვის.
დაამატეთ მოვლენები sp_trace_setevent პროცედურის გამოყენებით. მიუთითეთ კვალის ID, მოვლენის ID და სვეტის ID თითოეული მოვლენა-სვეტის კომბინაციისთვის, რომლის აღბეჭდვაც გსურთ. გამოიძახეთ ეს პროცედურა რამდენჯერმე სრული კვალის კონფიგურაციების შესაქმნელად.
ფილტრების კონფიგურაცია sp_trace_setfilter პროცედურის გამოყენებით. მიუთითეთ კვალის ID, სვეტის ID, ლოგიკური ოპერატორი, შედარების ოპერატორი და ფილტრის მნიშვნელობა. ფილტრის მრავალი გამოძახება გაერთიანებულია ფილტრის რთული კრიტერიუმების შესაქმნელად.
კვალის დასაწყებად გამოძახეთ sp_trace_setstatus სტატუსის მნიშვნელობით 1. შეწყვიტეთ კვალი იგივე პროცედურის გამოძახებით სტატუსის მნიშვნელობით 0. წაშალეთ კვალის განმარტებები სტატუსის მნიშვნელობით 2 გამოძახებით.
8.1.2 სერვერის მხარეს არსებული კვალის უპირატესობები
კლიენტის მიერ დატვირთვის შემცირება სერვერის მხარეს ტრასირების იდეალურს ხდის წარმოების მონიტორინგისთვის. მონაცემთა ბაზის სერვერი ამუშავებს ყველა ტრასირების ოპერაციას კლიენტის მანქანის რესურსების მოხმარების გარეშე. ქსელის გამტარუნარიანობა არ იხარჯება მოვლენების კლიენტის აპლიკაციაში გადასაცემად.
ავტომატური შესრულება საშუალებას იძლევა უყურადღებოდ დატოვებული კვალის შეგროვება. სერვერის მხარეს კვალის შექმნა გრძელდება მაშინაც კი, თუ კლიენტთან კავშირი არ არსებობს. კვალის შექმნის დაგეგმვა SQL Server აგენტის სამუშაოები ავტომატური მონიტორინგისთვის.
სერვერის მხარეს დამუშავება უფრო დაბალ შესრულებაზე ახდენს გავლენას. მოვლენები პირდაპირ დისკზე იწერება დამატებითი სერიალიზაციის ან ქსელური გადაცემის გარეშე. ბუფერული მართვა ოპტიმიზაციას უკეთებს დისკის შეყვანას/გამოსვლას საერთო მუშაობის გასაუმჯობესებლად.
8.2 კვალის გამეორების ფუნქცია
8.2.1 კვალის აღბეჭდვა განმეორებითი დაკვრისთვის
შექმენით განმეორებითი დაკვრისთვის მზად ტრასები შემდეგი ნაბიჯების მიხედვით:
- შექმენით ახალი კვალი, გამოიყენეთ TSQL_გამეორება შაბლონი.
- დარწმუნდით, რომ ყველა საჭირო მოვლენა და სვეტი არჩეულია.
- დააკონფიგურირეთ კვალი ფაილში შესანახად.
- გაუშვით კვალი იმ სამუშაო დატვირთვის პერიოდში, რომლის აღბეჭდვაც გსურთ.
- შეაჩერე კვალი და შეინახეთ ფაილი.
საჭირო მოვლენები და სვეტები უზრუნველყოფენ კვალის სრულად ხელახლა დაკვრას. TSQL_Replay შაბლონი მოიცავს ყველა საჭირო მოვლენის ტიპსა და მონაცემთა სვეტს. საჭირო ელემენტების არარსებობა ხელს უშლის წარმატებულ ხელახლა დაკვრას, ამიტომ ყოველთვის გამოიყენეთ ეს შაბლონი ხელახლა დაკვრის მიზნით ჩაწერისას.
8.2.2 ტრასების ხელახლა დაკვრა
ხელახლა დაარეგისტრირეთ ჩაწერილი სამუშაო დატვირთვები შემდეგი ნაბიჯების გამოყენებით:
- In SQL Server პროფილერი, დააწკაპუნეთ ფაილი -> ღიაა -> კვალის ფაილი.
- აირჩიეთ გამეორებისთვის მზად ტრასირების ფაილი.
- დაწკაპეთ გამეორება -> დასაწყისი.
- დაუკავშირდით სამიზნე სერვერს განმეორებითი დიალოგის ფანჯარაში.
- დააკონფიგურირეთ გამეორების პარამეტრები, მათ შორის გამეორების თანმიმდევრობა და დრო.
- დაწკაპეთ OK გამეორების დასაწყებად.
- სტატუსის ფანჯარაში აკონტროლეთ გამეორების პროგრესი.
გამეორების კონფიგურაციის პარამეტრები აკონტროლებს, თუ როგორ SQL Server Profiler ახდენს ჩაწერილი სამუშაოს რეპროდუცირებას. დროითი ურთიერთობების შესანარჩუნებლად, მოვლენები ხელახლა აჩვენეთ მათი ჩაწერის თანმიმდევრობით. დააკონფიგურირეთ, შეინარჩუნოს თუ არა თავდაპირველი დრო, თუ მოვლენები რაც შეიძლება სწრაფად გაიმეოროს.
8.2.3 კვალის გამეორების გამოყენების შემთხვევები
დატვირთვის ტესტირება სარგებლობს კვალის გამეორებით რეალისტური სამუშაო დატვირთვების რეპროდუცირებით. აღბეჭდეთ წარმოების სამუშაო დატვირთვის კვალი და ხელახლა დაუკარით ისინი სატესტო სისტემებს, რათა დაადასტუროთ შესრულება რეალური გამოყენების ნიმუშების პირობებში. შეცვალეთ პარალელური პარამეტრები სხვადასხვა დატვირთვის დონის სიმულირებისთვის.
გარემოს მიგრაციის ვალიდაცია უზრუნველყოფს, რომ ახალ სისტემებს შეუძლიათ არსებული სამუშაო დატვირთვების დამუშავება. აღრიცხეთ კვალი მიმდინარე საწარმოო სისტემებიდან და ხელახლა დაუკარით ისინი ახალ აპარატურაზე ან განახლებულზე. SQL Server ვერსიები. შეადარეთ შესრულების მეტრიკები იმის დასადასტურებლად, რომ მიგრაციები არ აუარესებს შესრულებას.
ტესტირების სცენარები მოიცავს კოდის ცვლილებების შემდეგ რეგრესიულ ტესტირებას, ოპტიმიზატორის ცვლილებების დადასტურებას SQL Server ვერსიები და სტრესის ტესტირების აპარატურის კონფიგურაციები. Replay უზრუნველყოფს თანმიმდევრულ, განმეორებად სამუშაო დატვირთვებს საიმედო ტესტირებისთვის.
8.3 SQL Profiler-ის ინტეგრირება მონაცემთა ბაზის ძრავის რეგულირების მრჩეველთან
შექმენით მონაცემთა ბაზის ძრავის რეგულირების მრჩევლის სამუშაო დატვირთვის ფაილები შესაბამისი მოვლენების მქონე კვალის აღრიცხვით. გამოიყენეთ რეგულირების შაბლონი, რათა დარწმუნდეთ, რომ ანალიზისთვის ყველა საჭირო ინფორმაცია აღრიცხულია.
გაუშვით მონაცემთა ბაზის ძრავის რეგულირების მრჩეველი და აირჩიეთ თქვენი კვალის ფაილი სამუშაო დატვირთვის წყაროდ. მრჩეველი აანალიზებს შეგროვებულ შეკითხვებს და გირჩევთ ინდექსებს, ინდექსირებულ ხედებს ან დაყოფის სტრატეგიებს, რომლებიც გააუმჯობესებს მუშაობას.
შესრულების ოპტიმიზაციის სამუშაო პროცესი აერთიანებს კვალის აღრიცხვას და რეგულირების ანალიზს. აღრიცხეთ წარმომადგენლობითი სამუშაო დატვირთვები ნორმალური ოპერაციების დროს, გააანალიზეთ Tuning Advisor-ის გამოყენებით, გადახედეთ რეკომენდაციებს, შეამოწმეთ შემოთავაზებული ცვლილებები შემუშავებაში და ბოლოს დანერგეთ დამტკიცებული ცვლილებები წარმოებაში.
8.4 კვალის შეგროვების ავტომატიზაცია
კვალის დაგეგმვის გამოყენება SQL Server აგენტის დავალებები მონაცემების ავტომატურად შესაგროვებლად. შექმენით T-SQL სკრიპტები, რომლებიც განსაზღვრავენ სერვერის მხარეს არსებულ ტრასებს sp_trace პროცედურების გამოყენებით. დაგეგმეთ ამ სკრიპტების გაშვება კონკრეტულ დროს ან ინტერვალებში.
PowerShell-ის ავტომატიზაცია საშუალებას იძლევა შეიქმნას დახვეწილი კვალის მართვის სცენარები. დაწერეთ PowerShell სკრიპტები, რომლებიც ქმნიან კვალის შემცველ ნიშნებს, აკონტროლებენ მათ სტატუსს და ამუშავებენ შეგროვებულ მონაცემებს. დაგეგმეთ PowerShell სკრიპტები დავალებების დამგეგმავის ან SQL Server აგენტი.
SQL Server აგენტის დავალებები უზრუნველყოფს საიმედო დაგეგმილ შესრულებას. შექმენით დავალებები, რომლებიც იწყებენ კვალის შექმნას მონიტორინგის პერიოდების დასაწყისში და წყვეტენ კვალის შექმნას მონაცემთა შეგროვების დასრულების შემდეგ. დააკონფიგურირეთ დავალების შეტყობინებები ადმინისტრატორების მიერ ხარვეზების შესახებ შეტყობინებისთვის.
8.5 კვალის პროგრამულად ანალიზი
წაიკითხეთ კვალის ფაილები T-SQL-ის გამოყენებით fn_trace_gettable ფუნქციის გამოყენებით. ეს ცხრილის მნიშვნელობების მქონე ფუნქცია ამუშავებს კვალის ფაილებს და შედეგების ნაკრების სახით აბრუნებს მოვლენების მონაცემებს. მორგებული ანალიზის შესასრულებლად, დასვით მოთხოვნა ამ მონაცემებზე სტანდარტული T-SQL-ის გამოყენებით.
მორგებული ანალიზის სკრიპტები კვალის ავტომატიზირებულ დამუშავებას უზრუნველყოფს. დაწერეთ მოთხოვნები, რომლებიც გამოთვლიან აგრეგირებულ სტატისტიკას, ამოიცნობენ შაბლონებს ან მონიშნავენ ანომალიებს. დაგეგმეთ ამ სკრიპტების ავტომატური გაშვება კვალის შეგროვების დასრულების შემდეგ.
ცხრილებში შენახული კვალის მონაცემების გამოყენებით შექმენით ანგარიშები. შექმენით ხედები, რომლებიც მოვლენებს დროის პერიოდის, მომხმარებლის ან აპლიკაციის მიხედვით აგრეგირებს. შექმენით ანგარიშგების გადაწყვეტილებები, რომლებიც რეგულარულ ანალიზს უზრუნველყოფს მონაცემთა ბაზის აქტივობისა და მუშაობის შესახებ.
9. SQL Server პროფილერის საუკეთესო პრაქტიკები
9.1 შესრულების საუკეთესო პრაქტიკა
9.1.1 კვალის დატვირთვის მინიმიზაცია
კვალის დატვირთვის შესამცირებლად აირჩიეთ მხოლოდ აუცილებელი მოვლენები. თითოეული დამატებითი მოვლენის ტიპი ზრდის მონაცემების რაოდენობას, რომელთა დამუშავებაც კვალის დამუშავების სისტემამ უნდა განახორციელოს. გადახედეთ თქვენს მონიტორინგის მიზნებს და ჩართეთ მხოლოდ ამ მიზნებთან უშუალოდ დაკავშირებული მოვლენები.
ეფექტურად გამოიყენეთ ფილტრები, რათა თავიდან აიცილოთ შეუსაბამო მონაცემების აღება. გაფილტრეთ მონაცემთა ბაზის სახელის მიხედვით, რათა გამოირიცხოს სისტემის მონაცემთა ბაზები. გაფილტრეთ ხანგრძლივობის მიხედვით, რათა აღირიცხოს მხოლოდ ნელი მოთხოვნები. გაფილტრეთ აპლიკაციის სახელის მიხედვით, რათა ფოკუსირება მოახდინოთ კონკრეტულ აპლიკაციებზე. სათანადო ფილტრაცია მკვეთრად ამცირებს კვალის დამუშავების დატვირთვას.
სერვერის მხარისა და კლიენტის მხარის მოსაზრებები გავლენას ახდენს მუშაობაზე. სერვერის მხარის ტრასები მონაცემებს პირდაპირ დისკზე წერს მინიმალური დატვირთვის გარეშე. კლიენტის მხარის ტრასები მოვლენებს ქსელის საშუალებით Profiler ინტერფეისზე გადასცემს, რაც ზრდის შეყოვნებას და გამტარუნარიანობის მოხმარებას. წარმოების მონიტორინგისთვის გამოიყენეთ სერვერის მხარის ტრასები.
9.1.2 კვალის შენახვის ოპტიმიზაცია
ფაილის ზომის მართვა ხელს უშლის დისკის სივრცის ამოწურვას. დააყენეთ ფაილის მაქსიმალური ზომის ლიმიტი ხელმისაწვდომი მეხსიერების შესაბამისად. ჩართეთ ფაილის გადართვა მრავალი ფაილის შესაქმნელად, ერთი ფაილის განუსაზღვრელი ვადით გაზრდის ნაცვლად. აკონტროლეთ დისკის სივრცე კვალის შესრულების დროს.
ცხრილისა და ფაილების შენახვას შორის მუშაობის განსხვავებული კომპრომისია. ფაილების შენახვა უკეთეს მუშაობას გვთავაზობს კვალის შესრულების დროს, რადგან ის გვერდს უვლის შენახვის ძრავას. ცხრილის შენახვა საშუალებას იძლევა T-SQL მოთხოვნების დაკისრების კვალის მონაცემებზე, მაგრამ ზრდის ჩაწერის დატვირთვას. აირჩიეთ შენახვის ტიპი თქვენი ანალიზის მოთხოვნების საფუძველზე.
9.2 უსაფრთხოების საუკეთესო პრაქტიკა
ნებართვების მართვა აკონტროლებს, ვის შეუძლია კვალის შექმნა და გაშვება. ALTER TRACE ნებართვა მიანიჭეთ მხოლოდ სანდო მომხმარებლებს, რომლებსაც კვალის ნებართვა სჭირდებათ. სისტემის ადმინისტრატორის როლის წევრებს შეუზღუდავი წვდომა აქვთ კვალის ნებართვებზე. რეგულარულად გადახედეთ და აუდიტი გაუკეთეთ კვალის ნებართვებს.
მგრძნობიარე მონაცემების დაცვა მოითხოვს კვალის ფრთხილად კონფიგურაციას. მგრძნობიარე მონაცემებთან მუშაობისას მოერიდეთ მოთხოვნის სრული ტექსტის ჩაწერას. განიხილეთ კონფიდენციალური ინფორმაციის შემცველი კვალის გამომავალი მონაცემების ფილტრაცია ან დაშიფვრა. შეინახეთ კვალის ფაილები უსაფრთხო ადგილას, შესაბამისი წვდომის კონტროლით.
კვალის ფაილის უსაფრთხოება ხელს უშლის შენახულ მონაცემებზე არაავტორიზებული წვდომის უზრუნველყოფას. დააყენეთ ფაილის ნებართვები კვალის ფაილებზე წვდომის შესაზღუდად. დაშიფრეთ კვალის ფაილები, თუ ისინი შეიცავს მგრძნობიარე ინფორმაციას. წაშალეთ კვალის ფაილები ანალიზის დასრულების შემდეგ, რათა მინიმუმამდე დაიყვანოთ ზემოქმედების რისკი.
9.3 საწარმოო გარემოს გასათვალისწინებელი საკითხები
9.3.1 როდის გამოვიყენოთ Profiler წარმოებაში
რისკის შეფასება განსაზღვრავს, როდის SQL Server Profiler შესაფერისია საწარმოო გამოყენებისთვის. Profiler შემოაქვს გაზომვადი ხარჯები, რომლებიც იზრდება კვალის აკრეფის მასშტაბის მატებასთან ერთად. საწარმოო კვალის გაშვებამდე შეაფასეთ, ამართლებს თუ არა დიაგნოსტიკური მნიშვნელობა მუშაობაზე გავლენას.
მინიმალური ზემოქმედების კონფიგურაციები უზრუნველყოფს წარმოების უფრო უსაფრთხო ტრასირებას. გამოიყენეთ მაღალშერჩევითი ფილტრები მხოლოდ კრიტიკული მოვლენების აღსაწერად. დააყენეთ ხანგრძლივობის ზღვრები სწრაფად შესრულებული მოთხოვნების იგნორირებისთვის. შეზღუდეთ ტრასირების ხანგრძლივობა მოკლე პერიოდებით პრობლემების მოგვარების სესიების დროს. დააკონფიგურირეთ სერვერის მხარის ტრასირება კლიენტის დატვირთვის შესამცირებლად.
9.3.2 წარმოების მონიტორინგის ალტერნატივები
გაფართოებული ღონისძიებები წარმოების მონიტორინგისთვის უფრო დაბალ ხარჯებს უზრუნველყოფს. ეს თანამედროვე ტექნოლოგია უკეთეს შესრულებას და მოქნილობას გვთავაზობს, ვიდრე SQL Server Profiler. მონიტორინგის გადაწყვეტილებების მიგრაცია გაფართოებულ ღონისძიებებზე გრძელვადიანი წარმოების გამოყენებისთვის.
Query Store ავტომატურად აფიქსირებს შეკითხვის შესრულების მონაცემებს ხელით კვალის კონფიგურაციის გარეშე. ჩართეთ Query Store საწარმოო მონაცემთა ბაზებზე, რათა დროთა განმავლობაში თვალყური ადევნოთ შეკითხვის შესრულების სტატისტიკას. Query Store უზრუნველყოფს შესრულების მონიტორინგის უმეტეს შესაძლებლობებს კვალის აკრეფის ხარჯების გარეშე.
დინამიური მართვის ხედები კონკრეტული სცენარებისთვის მსუბუქ მონიტორინგს გვთავაზობს. DMV-ები მიმდინარე მდგომარეობის შესახებ ინფორმაციას ისტორიული მოვლენების აღრიცხვის გარეშე გვაწვდიან. პერიოდულად მიმართეთ DMV-ებს სერვერის მდგომარეობის მონიტორინგისთვის უწყვეტი თვალთვალის ხარჯების გარეშე.
9.4 კვალის მართვის საუკეთესო პრაქტიკა
დასახელების კონვენციები უზრუნველყოფს კვალის ფაილების იდენტიფიცირებას და ორგანიზებას. კვალის ფაილების დასახელებაში ჩართეთ თარიღი, დრო, სერვერის სახელი და მიზანი. მართვისა და ანალიზის გასაადვილებლად გამოიყენეთ დასახელების თანმიმდევრული ნიმუშები ყველა კვალში.
დოკუმენტაცია აღწერს კვალის კონფიგურაციას და მიზანს. დოკუმენტირებას უკეთებს, თუ რა მოვლენები აღრიცხეთ, რატომ შექმენით კვალი და რა ისწავლეთ ანალიზიდან. აწარმოეთ წარმოების სისტემებში გაშვებული კვალის ჟურნალი შესაბამისობისა და პრობლემების მოგვარების მიზნით.
შენახვის პოლიტიკა ხელს უშლის კვალის ფაილების ჭარბ დაგროვებას. ბიზნესის მოთხოვნებისა და შენახვის მოცულობის მიხედვით, განსაზღვრეთ, რამდენ ხანს უნდა შეინახოთ კვალის ფაილები. დისკზე სივრცის გასათავისუფლებლად, ავტომატიზირეთ ძველი კვალის ფაილების წაშლა. წაშლამდე მნიშვნელოვანი კვალის დაარქივება გრძელვადიან საცავში.
9.5 გავრცელებული შეცდომა, რომელიც უნდა აარიდო
ზედმეტი კვალის დევნა იწვევს ზედმეტად მაღალ წარმადობას და ქმნის უმართავ მონაცემთა მოცულობებს. მოერიდეთ ყველა მოვლენის აღრიცხვას ფილტრების გარეშე. დაიწყეთ ვიწრო, ფოკუსირებული კვალის დევნით და გააფართოვეთ დიაპაზონი მხოლოდ საჭიროების შემთხვევაში. მეტი მონაცემი ყოველთვის არ არის უკეთესი ეფექტური პრობლემების გადასაჭრელად.
კვალის შეჩერების დავიწყება რესურსებს კარგავს და დისკის ადგილს ავსებს. მონიტორინგის დასრულების შემდეგ ყოველთვის შეწყვიტეთ კვალი. დააყენეთ კვალის ხანგრძლივობის ლიმიტი ან ფაილების მაქსიმალური ზომა, რათა თავიდან აიცილოთ კვალის გაქრობა. რეგულარულად აკონტროლეთ მიმდინარე კვალი და შეაჩერეთ არააქტიური ან არასაჭირო კვალი.
ფილტრის ოპტიმიზაციის იგნორირება იწვევს ცუდ მუშაობას და რთულ ანალიზს. კვალის აღრიცხვის დაწყებამდე დაუთმეთ დრო ეფექტური ფილტრების კონფიგურაციას. შეამოწმეთ ფილტრები განვითარების გარემოში, რათა დარწმუნდეთ, რომ ისინი აღრიცხავენ მოსალოდნელ მონაცემებს. გადახედეთ და დახვეწეთ ფილტრები აღრიცხული შედეგების საფუძველზე.
10. ალტერნატივები SQL Server პროფილერი 2025 წელს
10.1 გაფართოებული მოვლენები: თანამედროვე ჩანაცვლება
10.1.1 რა არის გაფართოებული მოვლენები
გაფართოებული ღონისძიებები წარმოადგენს SQL Serverთანამედროვე მოვლენების დამუშავების არქიტექტურა. Microsoft-მა ეს სისტემა სპეციალურად შექმნა იმისთვის, რომ SQL Server Profiler-ის შეზღუდვები, მათ შორის შესრულების ხარჯები და კონფიგურაციის მოქნილობა. Extended Events უზრუნველყოფს ყოვლისმომცველი მონიტორინგის შესაძლებლობებს მნიშვნელოვნად დაბალი რესურსების მოხმარებით.
არქიტექტურა და უპირატესობები განასხვავებს გაფართოებულ მოვლენებს ძველი ტრასირების ტექნოლოგიებისგან. მოვლენების ძრავა ღრმად ინტეგრირდება SQL Server-ის ძირითადი არქიტექტურა, რომელიც მოვლენებს მინიმალური დანახარჯებით აღბეჭდავს. ასინქრონული მოვლენების ბუფერიზაცია ხელს უშლის მონიტორინგის მიერ მონაცემთა ბაზის ოპერაციების დაბლოკვას. მოქნილი მიზნობრივი პარამეტრები საშუალებას იძლევა გამომავალი კონფიგურაციების მრავალფეროვნებისა.
შესრულების უპირატესობები გაფართოებულ ღონისძიებებს იდეალურს ხდის წარმოების მონიტორინგისთვის. საორიენტაციო მაჩვენებლები აჩვენებს, რომ გაფართოებული ღონისძიებები 50-90%-ით ნაკლებ ზედნადებს იწვევს, ვიდრე მისი ანალოგი. SQL Server პროფილის კვალი. არქიტექტურა უკეთესად მასშტაბირდება მაღალი მოვლენების მოცულობით და მხარს უჭერს მონიტორინგის მეტ ერთდროულ სესიას.
10.1.2 Profiler-დან გაფართოებულ მოვლენებზე გადასვლა
მოვლენების რუკების თარგმნა SQL Server Profiler-ის მოვლენები გაფართოებული მოვლენების ეკვივალენტებად. Profiler-ის მოვლენების უმეტესობას აქვს გაფართოებული მოვლენების შესაბამისი ანალოგები. Microsoft-ი გთავაზობთ დოკუმენტაციას, რომელიც ასახავს ორ სისტემას შორის საერთო მოვლენებს.
გაფართოებულ მოვლენებში სესიის შექმნა ახალი სინტაქსისა და კონცეფციების შესწავლას მოითხოვს. მოვლენების სესიების განსაზღვრა T-SQL CREATE EVENT SESSION ოპერატორების ან Management Studio-ში გაფართოებული მოვლენების გრაფიკული ინტერფეისის გამოყენებით ხდება. სესიები განსაზღვრავს, თუ რომელი მოვლენები უნდა იყოს აღბეჭდილი, რა მონაცემები უნდა შეგროვდეს და სად უნდა შეინახოს შედეგები.
10.1.3 გაფართოებული ღონისძიებების ინსტრუმენტები და ინტერფეისები
SSMS-ის გაფართოებული მოვლენების ინტერფეისი უზრუნველყოფს სესიების გრაფიკულ მართვას. გაფართოებულ მოვლენებზე წვდომა შეგიძლიათ Object Explorer-ის Management საქაღალდის მეშვეობით. შექმენით, შეცვალეთ და აკონტროლეთ მოვლენების სესიები ინტერფეისის მეშვეობით. ნახეთ შენახული მონაცემები გრაფიკულ ფორმატებში, მათ შორის ბადეებსა და დიაგრამებში.
T-SQL სესიის მართვა საშუალებას იძლევა პროგრამული გაფართოებული მოვლენების კონტროლისთვის. დაწერეთ CREATE EVENT SESSION ოპერატორები სესიების კოდში განსაზღვრისთვის. გამოიყენეთ ALTER EVENT SESSION მიმდინარე სესიების შესაცვლელად. სესიების გამორთვა DROP EVENT SESSION-ის გამოყენებით. ეს მიდგომა ხელს უწყობს ავტომატიზირებული მონიტორინგის გადაწყვეტილებებს.
10.2 SQL Server შეკითხვის მაღაზია
Query Store ავტომატურად აფიქსირებს შეკითხვის შესრულების მონაცემებს მონაცემთა ბაზებისთვის, სადაც ის ჩართულია. ეს ფუნქცია აკონტროლებს შეკითხვის გეგმებს, შესრულების სტატისტიკას და შესრულების მეტრიკას დროთა განმავლობაში, ხელით კვალის კონფიგურაციის გარეშე. Query Store ინახავს ისტორიულ მონაცემებს, რაც საშუალებას იძლევა ტენდენციების ანალიზისა და რეგრესიის აღმოჩენის.
Query Store-ის მეშვეობით რეალურ დროში შეკითხვის შესრულების მონიტორინგი ავლენს სისტემის მიმდინარე ქცევას. იხილეთ ბოლო დროს შესრულებული შეკითხვები, მათი შესრულების გეგმები და რესურსების მოხმარება. იდენტიფიცირეთ მზარდი ხანგრძლივობის ან ცვალებადი შესრულების გეგმების მქონე შეკითხვები, რომლებიც შეიძლება პრობლემებზე მიუთითებდეს.
ისტორიული შეკითხვის ანალიზი საშუალებას იძლევა დროის პერიოდებს შორის შედარების. შეკითხვის მაღაზია ინახავს შესრულების მონაცემებს კონფიგურირებადი შენახვის პერიოდებისთვის. შეადარეთ მიმდინარე შესრულება ისტორიულ საბაზისო ნიშნულებს რეგრესიების იდენტიფიცირებისთვის. გააანალიზეთ შესრულების ტენდენციები მომავალი სიმძლავრის საჭიროებების პროგნოზირებისთვის.
გამოიყენეთ Query Store, როდესაც გჭირდებათ ავტომატური, მუდმივად ჩართული შესრულების მონიტორინგი. ჩართეთ Query Store საწარმოო მონაცემთა ბაზებზე მოთხოვნების ქცევის უწყვეტი თვალყურის დევნებისთვის. Query Store ავსებს კვალის მიხედვით პრობლემების მოგვარებას შესრულების პრობლემების ისტორიული კონტექსტის მიწოდებით.
10.3 დინამიური მართვის ხედები (DMV)
DMV-ების მეშვეობით მსუბუქი მონიტორინგი უზრუნველყოფს მიმდინარე მდგომარეობის შესახებ ინფორმაციას ისტორიული მოვლენების აღრიცხვის გარეშე. DMV-ები ავლენენ შიდა SQL Server სტატისტიკა და მეტამონაცემები მოთხოვნადი ხედების საშუალებით. DMV-ებისთვის მოთხოვნების გაგზავნა სტანდარტული T-SQL SELECT ოპერატორების გამოყენებით.
შესრულების მონიტორინგისთვის DMV-ის გავრცელებული მოთხოვნებია sys.dm_exec_query_stats შეკითხვის შესრულების სტატისტიკისთვის, sys.dm_exec_requests მიმდინარე შესრულების მოთხოვნებისთვის და sys.dm_os_wait_stats ლოდინის სტატისტიკისთვის. ეს ხედები იძლევა სერვერის მდგომარეობისა და აქტივობის შესახებ ინფორმაციას დროის კონკრეტულ მონაკვეთში.
DMV-ები ავსებენ კვალის დაფუძნებულ მონიტორინგს რეალურ დროში მეტრიკის მიწოდებით. გამოიყენეთ DMV-ები სწრაფი შემოწმებისა და მიმდინარე მდგომარეობის ანალიზისთვის. ყოვლისმომცველი პრობლემების მოგვარების მიდგომებისთვის შეუთავსეთ DMV-ის მოთხოვნები კვალის მონაცემებს.
10.4 მესამე მხარის მონიტორინგის ინსტრუმენტები
კომერციული ალტერნატივები გვთავაზობენ გაუმჯობესებული მონიტორინგის შესაძლებლობებს, რომლებიც... SQL Serverჩაშენებული ხელსაწყოები. ისეთი მომწოდებლების პროდუქტები, როგორიცაა SolarWinds, Redgate და Quest, უზრუნველყოფენ ყოვლისმომცველი მონიტორინგის, შეტყობინებისა და ანალიზის ფუნქციებს. ეს ხელსაწყოები ხშირად აერთიანებს მონაცემთა მრავალ წყაროს, მათ შორის კვალის, DMV-ების და შესრულების მრიცხველების.
მახასიათებლების შედარება ავლენს მონიტორინგის სხვადასხვა მიდგომის ძლიერ მხარეებს. მესამე მხარის ინსტრუმენტები უზრუნველყოფენ უმაღლეს მომხმარებლის ინტერფეისებს, ავტომატურ განგაშის გაგზავნის და ისტორიული ტენდენციების შესახებ ინფორმაციას. SQL Serverჩაშენებული ხელსაწყოები ნულოვან დამატებით ხარჯებს და უფრო ღრმა ინტეგრაციას გთავაზობთ. შეაფასეთ ხელსაწყოები თქვენი კონკრეტული მოთხოვნებისა და ბიუჯეტის მიხედვით.
10.5 თქვენი საჭიროებებისთვის შესაფერისი ხელსაწყოს არჩევა
გადაწყვეტილების მატრიცა ხელს უწყობს შესაბამისი მონიტორინგის ინსტრუმენტების შერჩევას. ad hoc პრობლემების გადასაჭრელად, SQL Server Profiler კვლავ ხელმისაწვდომი და ეფექტურია. წარმოების მონიტორინგისთვის, Extended Events ან Query Store უკეთეს შესრულებას უზრუნველყოფს. ყოვლისმომცველი საწარმოს მონიტორინგისთვის, მესამე მხარის გადაწყვეტილებები ყველაზე მეტ ფუნქციას გვთავაზობენ.
ხელსაწყოების შერჩევის კრიტერიუმებია: შესრულების ხარჯები, გამოყენების სიმარტივე, მონაცემთა შენახვის მოთხოვნები და ბიუჯეტის შეზღუდვები. ხელსაწყოების შერჩევისას გაითვალისწინეთ თქვენი გუნდის ექსპერტიზა. ნაცნობი ხელსაწყოები პრობლემების უფრო სწრაფად მოგვარებას უზრუნველყოფს, მაშინაც კი, თუ ახალი ალტერნატივები უკეთეს ფუნქციებს გვთავაზობს.
ყოვლისმომცველი მონიტორინგის სტრატეგიებისთვის გააერთიანეთ მრავალი ინსტრუმენტი. გამოიყენეთ Query Store უწყვეტი შესრულების თვალყურის დევნებისთვის, Extended Events კონკრეტული პრობლემების გამოსაძიებლად და DMVs რეალურ დროში მდგომარეობის შემოწმებისთვის. ეს მრავალშრიანი მიდგომა უზრუნველყოფს სტაბილურ მონიტორინგს ზედმეტი ხარჯების გარეშე.
11. Დიაგნოსტიკა SQL Server პროფილის პრობლემები
11.1 დაკავშირების ხშირი პრობლემები
ავთენტიფიკაციის წარუმატებლობა ხელს უშლის SQL Server პროფილერი სამიზნე სერვერებთან დაკავშირებიდან. გადაამოწმეთ, რომ არჩეული ავტორიზაციის მეთოდისთვის სწორ ავტორიზაციის მონაცემებს იყენებთ. Windows-ის ავტორიზაციისთვის საჭიროა, რომ თქვენს Windows ანგარიშს ჰქონდეს შესაბამისი SQL Server ნებართვები. SQL Server ავთენტიფიკაციას სჭირდება SQL შესვლის ვალიდური სერთიფიკატები.
ქსელთან დაკავშირების პრობლემები ვლინდება დროის ამოწურვის შეცდომების ან კავშირის გაუმართაობის სახით. გადაამოწმეთ SQL Server მის კონფიგურაციაში დისტანციურ კავშირებს უშვებს. შეამოწმეთ firewall-ის პარამეტრები, რომლებიც ტრაფიკს უშვებს SQL Server's პორტი. Profiler-ის სპეციფიკური პრობლემების მოგვარებამდე შეამოწმეთ ძირითადი კავშირი ping-ისა და telnet-ის გამოყენებით.
11.2 Profiler-ის მუშაობის პრობლემები
ნელი კვალის შესრულება მიუთითებს კვალის კონფიგურაციიდან გამოწვეულ ზედმეტ დატვირთვაზე. გადახედეთ არჩეულ მოვლენებს და გამორიცხეთ არასაჭირო მოვლენები. დაამატეთ ფილტრები ჩაწერილი მოვლენების მოცულობის შესამცირებლად. კლიენტის მხარეს დამუშავების დატვირთვის შესამცირებლად განიხილეთ სერვერის მხარეს კვალის გამოყენება.
რესურსების მაღალი მოხმარება ორივეზე მოქმედებს SQL Server და Profiler კლიენტი. ტრეკის შესრულების დროს სერვერის CPU-სა და მეხსიერების მონიტორინგი. თუ სერვერის რესურსები შეზღუდულია, გაზარდეთ ფილტრის შერჩევითობა ან შეამცირეთ აღების ხანგრძლივობა. კლიენტის რესურსებთან დაკავშირებული პრობლემები მოითხოვს სხვა აპლიკაციების დახურვას ან კლიენტის აპარატურის განახლებას.
11.3 ტრასირების ფაილისა და ცხრილის პრობლემები
დაზიანებული ტრასირების ფაილები ხელს უშლის გახსნას SQL Server პროფილიერი. დაზიანება, როგორც წესი, გამოწვეულია არასაკმარისი კვალის შეწყვეტით ან დისკის შეცდომებით. სცადეთ ფაილის გახსნა ტექსტურ რედაქტორში, რათა დარწმუნდეთ, რომ ის მთლიანად არ არის დაზიანებული. ზოგჯერ მონაცემების ნაწილობრივი აღდგენა შესაძლებელია fn_trace_gettable-ის გამოყენებით ცხრილში იმპორტით.
ცხრილზე წვდომის პრობლემები წარმოიქმნება ტრასების ჩატვირთვის მცდელობისას. SQL Server ცხრილები. დარწმუნდით, რომ გაქვთ SELECT ნებართვა კვალის ცხრილზე. დარწმუნდით, რომ ცხრილი არ არის წაშლილი ან სახელი არ შეუცვლიათ. დარწმუნდით, რომ უკავშირდებით სწორ სერვერს და მონაცემთა ბაზას, რომელიც შეიცავს კვალის ცხრილს.
11.4 დაკარგული მოვლენები ან არასრული მონაცემები
ფილტრის არასწორი კონფიგურაცია იწვევს ტრასების მიერ მოსალოდნელი მოვლენების გამოტოვებას. ყურადღებით გადახედეთ ფილტრის კრიტერიუმებს, რათა დარწმუნდეთ, რომ ისინი არ გამორიცხავენ სასურველ მოვლენებს. შეამოწმეთ ფილტრები მოკლე ტრასების გაშვებით და შეგროვებული მონაცემების მოლოდინებთან შესაბამისობის დადასტურებით. დროებით ამოიღეთ ფილტრები, რათა დაადგინოთ, იწვევენ თუ არა ისინი პრობლემას.
ბუფერული გადავსება ხდება, როდესაც SQL Server კვალის მონაცემების ჩაწერა საკმარისად სწრაფად შეუძლებელია მოვლენების გენერირებისთვის. ეს, როგორც წესი, ხდება გაუფილტრავი კვალის შემთხვევაში მაღალი აქტივობის დროს. სიმპტომებია დაკარგული მოვლენები ან გაფრთხილებები „მოვლენები არ იქნა დაფიქსირებული“. პრობლემის გადასაჭრელად დაამატეთ ფილტრები მოვლენების მოცულობის შესამცირებლად ან გაზრდით კვალის ფაილის მდებარეობის დისკის შეყვანის/გამოყვანის მუშაობას.
11.5 პროფილერის გაუმართაობა და შეცდომები
ხშირად გამოყენებული შეცდომის შეტყობინებებია „კვალის შექმნა შეუძლებელია“, რაც ნებართვის პრობლემებზე ან რესურსების შეზღუდვაზე მიუთითებს. „კვალი შეჩერდა“ შეტყობინებები მიუთითებს სერვერის მხარეს კვალის შექმნის ხარვეზებზე, რომლებიც შესაძლოა დისკის სრული მდგომარეობის გამო იყოს გამოწვეული. „კვალის არასწორი განსაზღვრის“ შეცდომები მიუთითებს კონფიგურაციის პრობლემებზე.
გადაჭრის სტრატეგიები დამოკიდებულია კონკრეტულ შეცდომაზე. ნებართვის შეცდომები მოითხოვს მომხმარებლისთვის ALTER TRACE ნებართვის მინიჭებას. რესურსის შეცდომებისთვის საჭიროა დისკზე სივრცის ან მეხსიერების გათავისუფლება. კონფიგურაციის შეცდომებისთვის საჭიროა ტრასირების პარამეტრების გადახედვა და გასწორება. გადატვირთვა. SQL Server Profiler, თუ ის აღარ რეაგირებს.
12. პრაქტიკული SQL Server პროფილის სცენარები და მაგალითები
12.1 სცენარი 1: თქვენს მონაცემთა ბაზაში ყველაზე ნელი მოთხოვნების იდენტიფიცირება
ეს ინსტრუქცია აჩვენებს ნელი მოთხოვნების აღებას და ანალიზს.
დააკონფიგურირეთ კვალი შემდეგი ნაბიჯების მიხედვით:
- დაწყება SQL Server პროფილიერი და დაუკავშირდით თქვენს სამიზნე სერვერს.
- დაწკაპეთ ფაილი -> ახალი კვალი.
- შეიყვანეთ „ნელი შეკითხვის ანალიზი“ ველში კვალის სახელი სფეროში.
- აირჩიეთ TSQL დან გამოიყენეთ შაბლონი ძირს დაგდება.
- დაწკაპეთ ღონისძიებების შერჩევა Tab.
- დაწკაპეთ სვეტის ფილტრები.
- აირჩიეთ ხანგრძლივობა და შეიყვანეთ 1000000 მეტი ან ტოლი.
- აირჩიეთ მონაცემთა ბაზის სახელი და შეიყვანეთ თქვენი მონაცემთა ბაზის სახელი Like.
- დაწკაპეთ OK ფილტრების დასახურად.
- ჩართვა ფაილში შენახვა და მიუთითეთ ფაილის გზა.
- დაწკაპეთ გასაშვებად გადაღების დასაწყებად.
წარმომადგენლობითი სამუშაო დატვირთვის აღსაწერად, ტრეკის გაშვება პიკის სამუშაო საათებში მინიმუმ 30 წუთის განმავლობაში. საკმარისი მონაცემების შეგროვების შემდეგ, ტრეკის შეჩერება.
ამ პროცესის შედეგების ანალიზი:
- დააჭირეთ ხანგრძლივობა სვეტის სათაური შესრულების დროის მიხედვით დასალაგებლად.
- დაასახელეთ 10 ყველაზე ხანგრძლივი მოთხოვნა.
- თითოეული შეკითხვისთვის, შეამოწმეთ ტექსტური მონაცემები სვეტი.
- დააკოპირეთ მოთხოვნის ტექსტი და ჩასვით Management Studio-ში.
- გამოყენება სავარაუდო შესრულების გეგმის ჩვენება მოთხოვნის გასაანალიზებლად.
- მოძებნეთ ცხრილის სკანირება, დაკარგული ინდექსები ან არაეფექტური შეერთებები.
- მიმოხილვა CPU, წაკითხვადა წერს სვეტები რესურსების მოხმარების ნიმუშებისთვის.
12.2 სცენარი 2: ჩიხის პრობლემის გამართვა
ეს მაგალითი გვიჩვენებს, თუ როგორ უნდა აღვბეჭდოთ და გავაანალიზოთ ჩიხები.
ჩიხის მონიტორინგის კონფიგურაცია ამ ნაბიჯების გამოყენებით:
- შექმენით ახალი კვალი სახელწოდებით „ჩიხის გამოძიება“.
- დაწკაპეთ ღონისძიებების შერჩევა Tab.
- დაწკაპეთ ყველა ღონისძიების ჩვენება.
- Expand საკეტები კატეგორიაში.
- აირჩიეთ საკეტი: ჩიხი.
- აირჩიეთ საკეტი: ჩიხური ჯაჭვი.
- Expand შეცდომები და გაფრთხილებები კატეგორიაში.
- აირჩიეთ დაბლოკილი პროცესის ანგარიში.
- დარწმუნდით ტექსტური მონაცემები სვეტი შერჩეულია.
- დაწკაპეთ გასაშვებად მონიტორინგის დასაწყებად.
როდესაც კვალის აღსრულების დროს ჩიხი წარმოიქმნება, კვალის აღრიცხვის ბადეში ჩნდება Lock:Deadlock მოვლენა.
ჩიხის შესახებ ინფორმაციის ინტერპრეტაცია შემდეგი ნაბიჯების მიხედვით:
- დააჭირეთ საკეტი: ჩიხი მოვლენების რიგი.
- მომხმარებლის ტექსტური მონაცემები სვეტი ქვედა პანელში.
- დააკოპირეთ XML კონტენტი TextData-დან.
- გახსენით Management Studio და შექმენით ახალი შეკითხვის ფანჯარა.
- ჩასვით XML ფაილი მოთხოვნის ფანჯარაში.
- შეინახეთ ფაილი .xdl გაფართოებით.
- ჩიხის გრაფიკის სანახავად გახსენით .xdl ფაილი Management Studio-ში.
- გრაფიკზე ნაჩვენებია ჩართული პროცესები, დაბლოკილი რესურსები და არჩეული მსხვერპლი.
- კონფლიქტის გასაგებად, გადახედეთ ორივე პროცესიდან მიღებულ შეკითხვებს.
გადაჭრის ეტაპები, როგორც წესი, მოიცავს აპლიკაციის კოდში ოპერაციების ხელახლა დალაგებას რესურსებზე თანმიმდევრული თანმიმდევრობით წვდომისთვის, ტრანზაქციის მასშტაბის შემცირებას ან შესაბამისი დაბლოკვის მინიშნებების განხორციელებას.
12.3 სცენარი 3: კონკრეტული აპლიკაციიდან ყველა მოთხოვნის თვალყურის დევნება
ეს სცენარი აჩვენებს აპლიკაციის სპეციფიკური შეკითხვის მონიტორინგს.
აპლიკაციისთვის სპეციფიკური ტრასირების კონფიგურაცია შემდეგი ნაბიჯების გამოყენებით:
- შექმენით ახალი კვალი სახელწოდებით „აპლიკაციის მოთხოვნის თვალყურის დევნება“.
- აირჩიეთ სტანდარტული შაბლონი.
- დაწკაპეთ ღონისძიებების შერჩევა Tab.
- დაწკაპეთ სვეტის ფილტრები.
- აირჩიეთ აპლიკაციის სახელი.
- შეიყვანეთ თქვენი აპლიკაციის სახელი ველში Like სფეროში.
- თუ თქვენი აპლიკაცია იყენებს კავშირების გაერთიანებას, შეიძლება დაგჭირდეთ ველური ბარათების შესაბამისობა.
- დაწკაპეთ OK ფილტრის გამოსაყენებლად.
- ჩართვა ცხრილში შენახვა უფრო მარტივი მოთხოვნისთვის.
- დაწკაპეთ გასაშვებად გადაღების დასაწყებად.
მოთხოვნის შაბლონის ანალიზი ავლენს, თუ როგორ ურთიერთქმედებს თქვენი აპლიკაცია SQL Server:
- მონაცემების შეგროვების შემდეგ, შეწყვიტეთ კვალის აღრიცხვა.
- გახსენით Management Studio და დაუკავშირდით სერვერს კვალის ცხრილის გამოყენებით.
- ნიმუშების გასაანალიზებლად, დაუსვით მოთხოვნა კვალის ცხრილს.
- ოპერაციების მიქსის სანახავად დაითვალეთ მოთხოვნები ტიპის მიხედვით.
- ყველაზე ხშირად შესრულებული მოთხოვნების იდენტიფიცირება.
- მოძებნეთ ისეთი მოთხოვნები, რომელთა ქეშირება ან ოპტიმიზაცია შესაძლებელია.
- შეამოწმეთ განმეორებითი იდენტური მოთხოვნები, რომლებიც მიუთითებს კავშირების გაერთიანების არარსებობაზე.
12.4 სცენარი 4: შესაბამისობის მიზნით მონაცემებზე წვდომის აუდიტი
ეს მაგალითი აჩვენებს უსაფრთხოების აუდიტის კვალის შექმნას.
უსაფრთხოების აუდიტის კონფიგურაცია შემდეგი ნაბიჯების მიხედვით:
- შექმენით ახალი კვალი სახელწოდებით „უსაფრთხოების აუდიტის კვალი“.
- დაწკაპეთ ღონისძიებების შერჩევა Tab.
- დაწკაპეთ ყველა ღონისძიების ჩვენება.
- Expand უსაფრთხოების აუდიტი კატეგორიაში.
- აირჩიეთ აუდიტის შესვლა, აუდიტიდან გასვლა, აუდიტის შესვლა ვერ მოხერხდა.
- აირჩიეთ აუდიტის მონაცემთა ბაზის ობიექტზე წვდომა.
- Expand TSQL კატეგორიაში.
- აირჩიეთ SQL:BatchCompleted.
- დაწკაპეთ სვეტის ფილტრები.
- გაფილტრე ობიექტის სახელი კონკრეტული მგრძნობიარე ცხრილების მონიტორინგისთვის.
- ჩართვა ცხრილში შენახვა ხანგრძლივი შენახვისთვის.
- უყურადღებო ოპერაციისთვის სერვერის მხარის კვალის ჩართვა.
- დაწკაპეთ გასაშვებად აუდიტის დასაწყებად.
აუდიტის ანგარიშების გენერირება კვალის ცხრილის მოთხოვნით:
- შექმენით მომხმარებლისა და დროის პერიოდის მიხედვით წვდომის შემაჯამებელი მოთხოვნები.
- უჩვეულო წვდომის ნიმუშების ან სამუშაო საათების შემდეგ აქტივობის იდენტიფიცირება.
- უსაფრთხოების განსახილველად დოკუმენტირებულია შესვლის წარუმატებელი მცდელობები.
- აუდიტის მონაცემების ექსპორტი ანგარიშგების სისტემებში შესაბამისობის დოკუმენტაციისთვის.
- დაარქივეთ დასრულებული აუდიტის კვალი შენახვის პოლიტიკის შესაბამისად.
12.5 სცენარი 5: სამუშაო დატვირთვის აღრიცხვა შესრულების ტესტირებისთვის
ეს სცენარი აჩვენებს დატვირთვის აღრიცხვას ტესტირების მიზნებისთვის.
შექმენით განმეორებითი დაკვრისთვის მზად ტრასები ამ ნაბიჯების გამოყენებით:
- შექმენით ახალი კვალი სახელწოდებით „სამუშაო დატვირთვის აღება“.
- აირჩიეთ TSQL_გამეორება შაბლონის ჩამოსაშლელი სიიდან.
- ეს შაბლონი მოიცავს ყველა საჭირო მოვლენას და სვეტს გამეორებისთვის.
- დაწკაპეთ ღონისძიებების შერჩევა Tab.
- გამოიყენეთ ფილტრები, თუ გსურთ კონკრეტული სამუშაო დატვირთვის სეგმენტების აღბეჭდვა.
- ჩართვა ფაილში შენახვა.
- მიუთითეთ ფაილის გზა საკმარისი დისკის სივრცით.
- დააყენეთ შესაბამისი ფაილის ზომის ლიმიტი და ჩართეთ გადახვევა.
- დაწკაპეთ გასაშვებად გადაღების დასაწყებად.
აღრიცხვა წარმომადგენლობითი ბიზნეს ოპერაციების დროს. სამუშაო დატვირთვის ყოვლისმომცველი აღრიცხვისთვის, გაუშვით კვალი რამდენიმე საათის განმავლობაში, რომელიც მოიცავს სხვადასხვა აქტივობის ნიმუშებს. შეწყვიტეთ კვალი საკმარისი მონაცემების შეგროვების შემდეგ.
სამუშაო დატვირთვის ანალიზი ავლენს სისტემის ქცევის ნიმუშებს:
- გახსენით აღბეჭდილი კვალის ფაილი SQL Server პროფილერი.
- გადახედეთ მოვლენების განაწილებას ტიპისა და დროის მიხედვით.
- გამოთვალეთ რესურსების მოხმარების ჯამური მაჩვენებლები.
- პიკური აქტივობის პერიოდებისა და რესურსების შეფერხების იდენტიფიცირება.
- გამოიყენეთ კვალი მონაცემთა ბაზის ძრავის tuning მრჩევლის ანალიზისთვის.
- ცვლილებების დასადასტურებლად, ხელახლა დააკარით კვალი სატესტო სისტემებთან.
13. მონაცემთა ბაზის კორუფციის გამოვლენა SQL Server პროფილი
13.1 გამოყენება SQL Server კორუფციის ადრეული გამაფრთხილებელი ნიშნების პროფილერი
მონაცემთა ბაზის დაზიანება მონაცემთა მთლიანობისა და სისტემის საიმედოობის ერთ-ერთ ყველაზე სერიოზულ საფრთხეს წარმოადგენს. SQL Server Profiler არ არის კორუფციის გამოვლენის სპეციალური ინსტრუმენტი, მას შეუძლია აღბეჭდოს კრიტიკული გამაფრთხილებელი ნიშნები, რომლებიც მიუთითებს პოტენციურ კორუფციულ პრობლემებზე, რომლებიც დაუყოვნებლივ გამოძიებას მოითხოვს.
13.2 პოტენციური კორუფციის მანიშნებელი კრიტიკული შეცდომის მოვლენები
- სიმძიმის 24 შეცდომები (823, 824, 825): აპარატურისა და მედიის გაუმართაობა.
- შეცდომა 605: გვერდის აღდგენის წარუმატებელი მცდელობები
- შეცდომა 8928 და 8929: ობიექტის დაზიანება
13.3 საეჭვო მონაცემთა ბაზის ქცევები და გაფრთხილების ნიმუშები
- განმეორებითი შეკითხვის ვადის ამოწურვა კონკრეტულ ობიექტებზე
- წვდომის დარღვევები და აპლიკაციის კრახი
- უჩვეულო შეცდომების კლასტერიზაცია
13.4 DBCC CHECKDB-ის გაშვება პროფილირის მონაცემების საფუძველზე
If SQL Server თუ Profiler აღმოაჩენს საეჭვო დაზიანებებს, შეგიძლიათ გამოიყენოთ DBCC CHECKDB მონაცემთა ბაზის სრული შემოწმებისთვის. შემდეგ, თუ დადასტურდა, შეაკეთეთ ისინი. ჩვენ დავწერეთ ყოვლისმომცველი სახელმძღვანელო, თუ როგორ უნდა შეასრულოთ ეს დავალებები.
თუ DBCC CHECKDB ვერ ახერხებს მონაცემთა ბაზის აღდგენას, დაზიანება სერიოზულია. ასეთ შემთხვევაში, შეგიძლიათ მიმართოთ მესამე მხარის SQL აღდგენის ინსტრუმენტი.
14. ხშირად დასმული კითხვები
Q: არის SQL Server პროფილერი კვლავ მხარდაჭერილია SQL Server 2022?
დიახ, SQL Server Profiler კვლავ შედის SQL Server 2022 და SQL Server მენეჯმენტის სტუდია, მიუხედავად იმისა, რომ მას შემდეგ მოძველებულია SQL Server 2016. Microsoft-ი აგრძელებს ინსტრუმენტის მიმდინარე ვერსიებით გამოშვებას, თუმცა ახალი მონიტორინგის იმპლემენტაციებისთვის გირჩევთ გაფართოებულ მოვლენებზე გადასვლას. ინსტრუმენტი კვლავ ფუნქციონალურია და ფართოდ გამოიყენება პრობლემების მოგვარებისა და ad-hoc ანალიზისთვის.
კითხვა: რა განსხვავებაა მათ შორის SQL Server პროფილიერი და SQL კვალი?
A: SQL Server Profiler არის გრაფიკული ინტერფეისის ინსტრუმენტი, რომელიც უკავშირდება SQL Trace ძრავას, რომელიც მუშაობს მასში. SQL ServerSQL Trace არის ძირითადი ტექნოლოგია, რომელიც რეალურად აფიქსირებს მოვლენებს. თქვენ შეგიძლიათ შექმნათ კვალი Profiler-ის ინტერფეისის გამოყენებით ან პირდაპირ T-SQL შენახული პროცედურების საშუალებით, როგორიცაა sp_trace_create. Profiler უზრუნველყოფს უფრო მარტივ კონფიგურაციას, ხოლო T-SQL traces გთავაზობთ ავტომატიზაციის მეტ შესაძლებლობებს.
კითხვა: რამდენს შეადგენს შესრულების ოვერჰედი SQL Server პროფილიერის დამატება?
A: შესრულებაზე გავლენა დამოკიდებულია კვალის კონფიგურაციაზე. კარგად გაფილტრული კვალი, რომელიც მხოლოდ კონკრეტულ მოვლენებს აღრიცხავს, შეიძლება 1-5%-იანი დატვირთვის გაზრდას იწვევდეს. ცუდად კონფიგურირებული კვალი ფილტრების გარეშე შეიძლება 20-50%-იანი ან მეტი დატვირთვის გაზრდას იწვევდეს, განსაკუთრებით დატვირთულ სისტემებში. სერვერის მხარეს კვალის გავლენა კლიენტის მხარეს კვალის ეფექტურობის შემცირებაზე უფრო დაბალია. მოვლენების რაოდენობის შესამცირებლად ყოველთვის გამოიყენეთ ფილტრები და ჯერ კვალის ტესტირება არაპროდუქტიულ გარემოში განახორციელეთ.
კითხვა: შემიძლია სირბილი? SQL Server პროფაილერი საწარმოო სერვერებზე?
ა: შეგიძლია სირბილი SQL Server პროფაილერი საწარმოო სერვერებზე, მაგრამ სიფრთხილე გამოიჩინეთ. გამოიყენეთ მაღალშერჩევითი ფილტრები, შეზღუდეთ კვალის ხანგრძლივობა და ზემოქმედების მინიმიზაციისთვის უპირატესობა მიანიჭეთ სერვერის მხარეს არსებულ კვალის გამოყენებას. შესაძლებლობის შემთხვევაში, გაუშვით საწარმოო კვალი დაბალი აქტივობის პერიოდებში. უწყვეტი წარმოების მონიტორინგისთვის, განიხილეთ გაფართოებული მოვლენები ან შეკითხვის მაღაზია, რადგან ისინი უფრო დაბალ ზედნადებ ხარჯებს გვთავაზობენ.
კითხვა: რა ნებართვები მჭირდება გამოვიყენო SQL Server პროფილერი?
A: კვალის შესაქმნელად და გასაშვებად გჭირდებათ ALTER TRACE-ის ნებართვა. სისტემის ადმინისტრატორის ფიქსირებული სერვერის როლის წევრებს ავტომატურად აქვთ ეს ნებართვა. არასისტემის ადმინისტრატორის მომხმარებლებისთვის, მიანიჭეთ მათ ALTER TRACE-ის ნებართვა. გარდა ამისა, თქვენი კონფიგურაციის მიხედვით, საჭიროა შესაბამისი ნებართვები კვალის მონაცემების ფაილებში ან ცხრილებში შესანახად.
კითხვა: რატომ არ შემიძლია ჩემს კვალის ყველა მოვლენის ნახვა?
A: გამოტოვებული მოვლენები, როგორც წესი, გამოწვეულია ზედმეტად შემზღუდავი ფილტრებით ან ბუფერული გადავსებით. გადახედეთ თქვენი ფილტრის კონფიგურაციას, რათა დარწმუნდეთ, რომ ის არ გამორიცხავს სასურველ მოვლენებს. ბუფერული გადავსება ხდება, როდესაც SQL Server მოვლენების საკმარისად სწრაფად ჩაწერა შეუძლებელია, როგორც წესი, დატვირთულ სისტემებში გაუფილტრავი კვალის არსებობის შემთხვევაში. დაამატეთ ფილტრები მოვლენების მოცულობის შესამცირებლად ან დისკის შეყვანის/გამოყვანის მუშაობის გასაზრდელად. შეამოწმეთ შეცდომის შეტყობინებები, რომლებიც მიუთითებს, რომ მოვლენები არ იქნა დაფიქსირებული.
კითხვა: როგორ შევაგროვო ჩიხის შესახებ ინფორმაცია SQL Server პროფილერი?
A: შექმენით კვალი, რომელიც მოიცავს Lock:Deadlock და Lock:Deadlock Chain მოვლენებს Locks კატეგორიიდან. დარწმუნდით, რომ TextData სვეტი არჩეულია, რადგან ის შეიცავს ჩიხის გრაფიკის XML-ს. ჩიხის წარმოქმნისას, დააკოპირეთ XML TextData სვეტიდან, შეინახეთ იგი .xdl გაფართოებით და გახსენით იგი SQL Server Management Studio გრაფიკული ჩიხის დიაგრამის სანახავად.
კითხვა: რა განსხვავებაა ფაილებში კვალის შენახვასა და ცხრილებში შენახვას შორის?
A: ფაილები უკეთეს შესრულებას გვთავაზობენ კვალის შესრულებისას, რადგან ისინი გვერდს უვლიან SQL Server შენახვის ძრავა. ფაილის ტრასები მონაცემებს პირდაპირ დისკზე წერს მინიმალური დატვირთვის გამოყენებით. ცხრილის ტრასები შენახვის ძრავის მეშვეობით იწერს, რაც დამატებით დატვირთვის საშუალებას იძლევა, მაგრამ ტრასირების მონაცემებზე დაუყოვნებლივ T-SQL მოთხოვნების დაკმაყოფილების საშუალებას იძლევა. გამოიყენეთ ფაილები შესრულებაზე მგრძნობიარე სცენარებისთვის და ცხრილები, როდესაც მონაცემების მოთხოვნა გჭირდებათ დაუყოვნებლივ ჩაწერის დროს ან მის შემდეგ.
კითხვა: შემიძლია ავტომატიზაცია? SQL Server პროფილერის კვალის შეგროვება?
A: დიახ, კვალის შეგროვების ავტომატიზაცია სერვერის მხარეს არსებული კვალის გამოყენებით, რომელიც შექმნილია T-SQL შენახული პროცედურებით. სკრიპტების დაწერა sp_trace_create-ის და მასთან დაკავშირებული პროცედურების გამოყენებით, შემდეგ კი მათი დაგეგმვა. SQL Server აგენტის დავალებები. ეს მიდგომა საშუალებას იძლევა უყურადღებოდ დარჩეს კვალის შეგროვება მითითებული გრაფიკით. PowerShell სკრიპტები უფრო რთული სცენარებისთვის კიდევ ერთ ავტომატიზაციის ვარიანტს გვთავაზობენ.
კითხვა: რამდენ ხანს უნდა გავატარო ტრეისი?
A: კვალის ხანგრძლივობა დამოკიდებულია თქვენს მიზნებზე. კონკრეტული პრობლემების გადასაჭრელად, გაუშვით კვალი პრობლემის რეპროდუცირების პარალელურად, როგორც წესი, 5-30 წუთი. შესრულების ანალიზისთვის, პიკური აქტივობის პერიოდებში აღრიცხეთ მინიმუმ ერთი საათი. სამუშაო დატვირთვის ანალიზისთვის ან სიმძლავრის დაგეგმვისთვის, შეაგროვეთ რამდენიმე საათი სხვადასხვა დროის პერიოდში. ყოველთვის შეწყვიტეთ კვალი მონიტორინგის დასრულების შემდეგ, რესურსების გასათავისუფლებლად.
კითხვა: რა უნდა გავაკეთო, თუ ჩემი ტრასირების ფაილი ძალიან დიდი გახდება?
A: ჩართეთ ფაილის გადატანა კვალის თვისებებში, რათა შექმნათ რამდენიმე პატარა ფაილი ერთი დიდი ფაილის ნაცვლად. დააყენეთ ფაილის მაქსიმალური ზომა, რომელიც შეესაბამება თქვენი დისკის ადგილს და ანალიზის საჭიროებებს. გამოიყენეთ ფილტრები ჩაწერილი მოვლენების მოცულობის შესამცირებლად. დიდი კვალის შემთხვევაში, განიხილეთ მონაცემების სეგმენტებად ანალიზი, მთელი კვალის ერთდროულად ჩატვირთვის ნაცვლად. დისკის სივრცის სამართავად რეგულარულად დაარქივეთ ან წაშალეთ ძველი კვალის ფაილები.
კითხვა: როგორ მოვძებნო მოთხოვნები, რომლებიც იწვევენ პროცესორის მაღალ დატვირთვას?
A: შექმენით კვალი SQL:BatchCompleted და RPC:Completed მოვლენებით. ჩართეთ CPU, Duration და TextData სვეტები. გაფილტრეთ ხანგრძლივობის მიხედვით, რათა აღირიცხოს მხოლოდ ის მოთხოვნები, რომლებიც აღემატება 1000 მილიწამის ზღურბლს. მონაცემების შეგროვების შემდეგ, დაალაგეთ CPU სვეტის მიხედვით კლებადობით. ზედა ნაწილში მოცემული მოთხოვნები ყველაზე მეტ პროცესორის დროს მოიხმარს. შეამოწმეთ ეს მოთხოვნები ოპტიმიზაციის შესაძლებლობებისთვის, როგორიცაა დაკარგული ინდექსები ან არაეფექტური ლოგიკა.
კითხვა: შეიძლება SQL Server პროფილერის აღბეჭდვის შეკითხვის შესრულების გეგმები?
A: SQL Server Profiler-ს შეუძლია შესრულების გეგმის ინფორმაციის აღრიცხვა Showplan XML მოვლენების მეშვეობით Performance კატეგორიაში. სრული შესრულების გეგმების აღსაწერად აირჩიეთ Showplan XML ან Showplan XML Statistics Profile მოვლენები. TextData სვეტი შეიცავს XML გეგმის მონაცემებს. თუმცა, შესრულების გეგმის რუტინული ანალიზისთვის, SQL Server Management Studio-ს გრაფიკული შესრულების გეგმის ფუნქციები ან Query Store უფრო მარტივ ალტერნატივებს გვთავაზობს.
კითხვა: რომელია საუკეთესო შაბლონი ზოგადი მონიტორინგისთვის დასაწყებად?
A: სტანდარტული შაბლონი ზოგადი მონიტორინგისთვის კარგ საწყის წერტილს წარმოადგენს. ის მოიცავს შეკითხვის შესრულების საერთო მოვლენებს, შენახული პროცედურების გამოძახებებს და შეცდომების თვალყურის დევნებას დაბალანსებული ოვერჰედით. შეკითხვის შესრულებაზე ორიენტირებული დაბალი ზემოქმედების მქონე მონიტორინგისთვის გამოიყენეთ TSQL შაბლონი. საფუძვლების გააზრების შემდეგ, შაბლონების პერსონალიზაცია მოახდინეთ თქვენი კონკრეტული საჭიროებების მიხედვით ფილტრების დამატებით და მოვლენების შერჩევის რეგულირებით.
კითხვა: როგორ მივაკვლიო მხოლოდ კონკრეტულ აპლიკაციას ან მომხმარებელს?
A: კონკრეტული აპლიკაციების ან მომხმარებლების იზოლირებისთვის გამოიყენეთ სვეტის ფილტრები. აპლიკაციებისთვის, გაფილტრეთ ApplicationName სვეტის მიხედვით, თქვენი კავშირის სტრიქონში მითითებული სახელის გამოყენებით. მომხმარებლებისთვის, გაფილტრეთ LoginName სვეტის მიხედვით შემდეგი სტრიქონის გამოყენებით: SQL Server შესვლა ან Windows ანგარიშის სახელი. ფოკუსის კიდევ უფრო ვიწროდ შესამცირებლად, გააერთიანეთ რამდენიმე ფილტრი, მაგალითად, გაფილტრეთ როგორც ApplicationName-ით, ასევე DatabaseName-ით, რათა აკონტროლოთ ერთი აპლიკაციის აქტივობა კონკრეტულ მონაცემთა ბაზაში.
15. დასკვნა და შემდეგი ნაბიჯები
15.1 ძირითადი წამალი
SQL Server Profiler-ი, მიუხედავად მისი მოძველებული სტატუსისა, კვლავ ღირებულ ინსტრუმენტად რჩება ad-hoc მონაცემთა ბაზის პრობლემების გადასაჭრელად. მარტივი ინტერფეისი და მოვლენების ყოვლისმომცველი ჩაწერა მას იდეალურს ხდის სწრაფი დიაგნოსტიკური სესიებისთვის, როდესაც დაუყოვნებლივი შედეგები გჭირდებათ. გამოიყენეთ Profiler კონკრეტული პრობლემების გადასაჭრელად, აპლიკაციის ქცევის ანალიზისა და უსაფრთხოების აუდიტისთვის.
საუკეთესო პრაქტიკა მოიცავს ფილტრების აგრესიულ გამოყენებას შესრულებაზე ზემოქმედების მინიმიზაციისთვის, წარმოების გარემოსთვის სერვერის მხარეს ტრასირების უპირატესობას და ტრასირების ხანგრძლივობის აუცილებელ პერიოდებამდე შეზღუდვას. ხარჯების შესამცირებლად აირჩიეთ მხოლოდ აუცილებელი მოვლენები და სვეტები. ჩაწერის დროს უკეთესი შესრულებისთვის, ტრასები შეინახეთ ფაილებში და არა ცხრილებში.
15.2 წინსვლა: თანამედროვე ინსტრუმენტების გამოყენება
გადასვლა SQL Server Profiler-დან Extended Events-მდე გრძელვადიანი მონიტორინგის გადაწყვეტილებებისთვის. მიუხედავად იმისა, რომ Profiler ფუნქციონირებს, Extended Events-ის შესწავლაში დროის დახარჯვა მომავლისთვის გამზადებთ. SQL Server ვერსიები. დაიწყეთ მარტივი გაფართოებული მოვლენების სესიებით, რომლებიც თქვენს საერთო Profiler-ის ტრასებს იმეორებენ.
ჩართეთ Query Store საწარმოო მონაცემთა ბაზებზე, რათა მიიღოთ ავტომატური შესრულების მონიტორინგი ხელით კვალის კონფიგურაციის გარეშე. Query Store უწყვეტად აფიქსირებს შეკითხვის გეგმებსა და შესრულების სტატისტიკას, რაც უზრუნველყოფს საბაზისო მონაცემებს შესრულების ანალიზისთვის. ყოვლისმომცველი მონიტორინგისთვის გააერთიანეთ Query Store მიზნობრივ გაფართოებულ ღონისძიებების სესიებთან.
15.3 დამატებითი რესურსები
შემდეგი რესურსები დაგეხმარებათ თქვენი ცოდნის გაღრმავებაში SQL Server პროფილერის ცოდნა და მონიტორინგის საუკეთესო პრაქტიკის შესახებ ინფორმირებულობის შენარჩუნება:
ოფიციალური Microsoft-ის დოკუმენტაცია
- SQL Server პროფილერის დოკუმენტაცია - მოვლენების, სვეტებისა და პროცედურების ყოვლისმომცველი მითითება
- SQL Trace სისტემის შენახული პროცედურები – T-SQL მითითება სერვერის მხარეს კვალის შესაქმნელად
- გაფართოებული ღონისძიებების დოკუმენტაცია – მიგრაციის ხელმძღვანელობა და მონიტორინგის თანამედროვე მიდგომები
- შეკითხვის მაღაზიის დოკუმენტაცია – ავტომატური შეკითხვის შესრულების თვალთვალის მითითება
- შესრულების მონიტორინგისა და რეგულირების ინსტრუმენტები – ყველაფრის მიმოხილვა SQL Server მონიტორინგის პარამეტრები
თემის რესურსები
- SQL Server ცენტრალური – სტატიები, ფორუმები და სკრიპტები მონაცემთა ბაზის პროფესიონალებისთვის
- Stack Overflow SQL Server თეგი – საზოგადოების კითხვა-პასუხი კონკრეტული პრობლემების გადაჭრის შესახებ კითხვებისთვის
- Reddit r/SQLServer – სადისკუსიო ფორუმი SQL Server თემები და რჩევები
- SQLServerCentral.com ფორუმები – აქტიური საზოგადოებრივი დისკუსიები პროფილირებისა და შესრულების შესახებ
- MSDN SQL Server ფორუმები – Microsoft-ის მიერ ორგანიზებული საზოგადოების მხარდაჭერის ფორუმები
ბლოგები და ტექნიკური სტატიები
- SQL Server შესრულების მონიტორი – შესრულების მონიტორინგისა და ოპტიმიზაციისთვის განკუთვნილი კონტენტი
- ბრენტ ოზარის შეუზღუდავი ბლოგი – შესრულების რეგულირებისა და მონიტორინგის საუკეთესო პრაქტიკები
- SQLSkills.com – ექსპერტის დონე SQL Server კონტენტი ინდუსტრიის ლიდერებისგან
- microsoft SQL Server ბლოგი – პროდუქტის ოფიციალური განახლებები და ფუნქციების შესახებ განცხადებები
- მარტივი საუბარი - პრაქტიკული SQL Server სახელმძღვანელოები და შემთხვევის კვლევები
ტრენინგი და სერტიფიკაცია
- Microsoft Learn – უფასო ონლაინ სასწავლო მოდულები SQL Server
- Microsoft-ის სერტიფიცირებული: Azure მონაცემთა ბაზის ადმინისტრატორის ასოცირებული წევრი – ოფიციალური სერტიფიცირების გზა
- პლურალისტი SQL Server კურსები – ვიდეო ტრენინგი პროფილირებისა და შესრულების რეგულირების შესახებ
- LinkedIn სასწავლო SQL Server ტრენინგი – პროფესიული განვითარების კურსები
- Udemy SQL Server შესრულების კურსები – პრაქტიკული ტრენინგის ვარიანტები
წიგნები
- SQL Server შეკითხვის შესრულების რეგულირება - შესრულების ოპტიმიზაციის ყოვლისმომცველი სახელმძღვანელო
- პოსტი SQL Server შინაგანი ფაქტორები - ღრმად ჩახედვა SQL Server არქიტექტურა
- SQL Server შესრულების გეგმები - შეკითხვის ოპტიმიზაციის გაგება
- ექსპერტის მუშაობის ინდექსირება SQL Server – ინდექსის დიზაინი და ოპტიმიზაცია
- SQL Server გაფართოებული პრობლემების მოგვარება და შესრულების რეგულირება - გაფართოებული დიაგნოსტიკური ტექნიკა
ინსტრუმენტები და უტილიტები
- SQL Server მენეჯმენტის სტუდია – ძირითადი ინტერფეისი SQL Server პროფილი
- Azure DataStudio – თანამედროვე მრავალპლატფორმული მონაცემთა ბაზის ინსტრუმენტი
- sp_WhoIsActive – საზოგადოების მიერ შექმნილი პოპულარული მონიტორინგის შენახული პროცედურა
- SQL Sentry Plan Explorer – უფასო შესრულების გეგმის ანალიზის ინსტრუმენტი
- DBForge Studio – მესამე მხარის SQL Server განვითარებისა და ადმინისტრირების ინსტრუმენტი
ავტორის შესახებ
იუან შენგი არის მონაცემთა ბაზის უფროსი ადმინისტრატორი (DBA) 10 წელზე მეტი გამოცდილებით SQL Server გარემოსა და საწარმოს მონაცემთა ბაზის მართვაში. მან წარმატებით გადაჭრა მონაცემთა ბაზის აღდგენის ასობით სცენარი ფინანსურ სერვისებში, ჯანდაცვისა და წარმოების ორგანიზაციებში.
იუანი სპეციალიზირებულია SQL Server მონაცემთა ბაზის აღდგენა, მაღალი ხელმისაწვდომობის გადაწყვეტილებებიდა მუშაობის ოპტიმიზაცია. მისი ფართო პრაქტიკული გამოცდილება მოიცავს მრავალტერაბაიტიანი მონაცემთა ბაზების მართვას, დანერგვას ყოველთვის ხელმისაწვდომი ჯგუფებიდა მისიისთვის კრიტიკული ბიზნეს სისტემებისთვის ავტომატური სარეზერვო ასლის შექმნისა და აღდგენის სტრატეგიების შემუშავება.
თავისი ტექნიკური ექსპერტიზისა და პრაქტიკული მიდგომის წყალობით, იუანი ფოკუსირებულია ყოვლისმომცველი სახელმძღვანელოების შექმნაზე, რომლებიც მონაცემთა ბაზის ადმინისტრატორებსა და IT სპეციალისტებს დაეხმარება რთული საკითხების გადაჭრაში. SQL Server ეფექტურად უწევს გამოწვევებს. ის მუდმივად ადევნებს თვალყურს უახლეს ამბებს SQL Server რელიზები და Microsoft-ის განვითარებადი მონაცემთა ბაზის ტექნოლოგიები, რეგულარულად ამოწმებს აღდგენის სცენარებს იმის უზრუნველსაყოფად, რომ მისი რეკომენდაციები ასახავდეს რეალურ სამყაროს საუკეთესო პრაქტიკას.
გაქვთ შეკითხვები SQL Server აღდგენა ან გჭირდებათ დამატებითი რჩევები მონაცემთა ბაზის პრობლემების მოგვარებაში? იუანი სიამოვნებით მოგმართავთ. გამოხმაურება და წინადადებები ამ ტექნიკური რესურსების გასაუმჯობესებლად.























