Sql profiler jadual apa yang sedang ditulis. SQL Profiler menyelesaikan masalah. Memulakan dan menyambung ke pelayan

SQL Profiler ialah alat perisian yang digunakan untuk mengesan SQL Server. "Trace" - sesi mengumpul maklumat tentang pengendalian SQL Server 2008

Tujuan utama:

SQL Profiler digunakan oleh pentadbir untuk:

· analisis permohonan;

· menentukan keoptimuman permintaan yang dihantar ke pelayan;

· mengenal pasti arahan Transact-SQL yang menyebabkan ralat apabila dilaksanakan;

· mengumpul maklumat tentang aktiviti pengguna dalam jangka masa yang panjang;

· memantau operasi pelayan dalam masa nyata.

Peluang baharu:

a. Pemprofilan Perkhidmatan Analisis;

b. Pemprofilan acara Perkhidmatan Integrasi;

c. keupayaan untuk merekod bacaan balas daripada Monitor Prestasi apabila merekodkan maklumat pelaksanaan arahan;

d. Profiler telah menambah banyak peristiwa baharu dan sumber maklumat yang boleh dipilih untuk dirakam dalam fail surih;

f. keupayaan untuk mengumpulkan acara dalam tetingkap profiler.

Bekerja dengan SQL Server Profiler

1. Lancarkan SQL Server Profiler - daripada menu Mulakan Program Alat Prestasi SQL Server 2008 SQL Server Profiler.

2. Dalam tetingkap yang terbuka dalam menu Fail pilih Jejak Baharu dan sambung ke pelayan SQL Server 2008 yang operasinya akan kami pantau.

3. Konfigurasikan parameter sesi dalam tetingkap Ciri-ciri Jejak, yang dibuka secara automatik sebelum permulaan sesi pengesanan (lihat Rajah 8.1).

nasi. 8.1. Mengkonfigurasi Pilihan Sesi Trace

a. Pada tab Umum pilih daripada senarai Gunakan templat templat yang paling sesuai. Templat dipilih menggunakan menu Fail à templat dalam SQL Server Profiler. Pada mulanya, anda mempunyai lapan templat yang anda boleh gunakan:

1). Standard (lalai)- templat lalai yang membolehkan anda menjejaki semua prosedur tersimpan dan perintah Transact-SQL yang dilancarkan untuk pelaksanaan;

2). SP_Counts- mengumpul maklumat mengenai prosedur tersimpan dan fungsi yang dilancarkan untuk pelaksanaan, diisih mengikut nama;

3). TSQL- pengumpulan maklumat tentang semua arahan Transact-SQL yang dilancarkan untuk pelaksanaan pada pelayan, menunjukkan pengecam proses pengguna dan masa pelancaran;

4). TSQL_Duration- serupa dengan templat sebelumnya, tetapi bukannya maklumat tentang masa arahan TSQL dilancarkan, masa yang diambil untuk melaksanakannya direkodkan;

5). TSQL_Grouped- sebagai tambahan kepada maklumat tentang kod arahan Transact-SQL dan masa ia dilancarkan, maklumat tentang nama aplikasi, akaun pengguna dalam OS dan akaun pengguna yang digunakan untuk menyambung juga direkodkan;



6). TSQL_Replay- merekodkan maklumat yang paling terperinci tentang perintah Transact-SQL yang dilaksanakan;

7). TSQL_SPs- selain daripada merekodkan maklumat tentang permulaan menjalankan prosedur tersimpan (SP:Starting), maklumat tentang pelaksanaan setiap arahan prosedur tersimpan direkodkan (SP:StmtStarting);

8). Penalaan- digunakan untuk mengumpul maklumat yang diperlukan untuk Penasihat Penalaan Pangkalan Data.

b. Pada tab Umum jika anda perlu menentukan lokasi tempat maklumat surih disimpan:

1). Maklumat jejak boleh dilog ke fail (5 MB secara lalai):

· parameter Dayakan Tukar Fail menentukan sama ada apabila satu fail diisi, yang seterusnya akan dibuat secara automatik. Nama fail seterusnya akan sama dengan nama fail sebelumnya, tetapi nombor akan ditambahkan pada namanya (1, 2, 3, dsb.)

· parameter Pelayan memproses data surih boleh digunakan untuk meningkatkan kebolehpercayaan merekod maklumat surih. Selepas menandakan kotak ini, pelayan akan mengendalikan pemprosesan maklumat surih.

2). Maklumat jejak boleh disimpan dalam jadual SQL Server. Jadual dengan set lajur yang diperlukan akan dibuat secara automatik.

3). Menggunakan parameter Dayakan Masa Hentian Jejak Anda boleh menentukan masa apabila pengesanan akan dimatikan secara automatik.

c. Pada tab Pemilihan Acara tentukan parameter untuk mengumpul maklumat. Dalam jadual pada tab ini, anda mesti memilih acara yang diperlukan (dalam baris) dan maklumat (dalam lajur) yang akan direkodkan untuknya. Untuk memaparkan semua baris dan lajur, anda perlu menyemak kotak Tunjukkan Semua Acara Dan Tunjukkan Semua Lajur.

1). melalui butang Penapis Lajur(Penapis lajur) mengkonfigurasi penapis untuk mengumpul maklumat yang diperlukan (menjejaki tindakan yang dilakukan dalam pangkalan data tertentu, atau oleh aplikasi tertentu, atau oleh pengguna tertentu) - Suka atau Bukan seperti;

2). menggunakan butang Susun Lajur(Atur Lajur) konfigurasikan susunan lajur untuk paparan atau rakaman dalam profiler dengan keupayaan untuk mengumpulkan data - bahagian Kumpulan.

4. Selepas menetapkan semua parameter pengesanan, klik pada butang Lari(Lari) (lihat Rajah 8.2)

nasi. 8.2. Lihat maklumat semasa sesi pengesanan

Bahagian atas tetingkap memaparkan peristiwa yang berlaku pada pelayan, dan bahagian bawah menyediakan maklumat terperinci untuk setiap peristiwa (contohnya, kod arahan SQL).

Pilihan tersedia dalam tetingkap jejak:

1. Jika pada tab Susun Lajur Dalam sifat templat yang telah anda pilih lajur untuk pengumpulan, anda boleh mengumpulkan rekod mengikut lajur ini dalam tetingkap paparan. Untuk tujuan ini dalam menu Lihat arahan disediakan Pandangan Berkumpulan;

2. Jika dalam senarai Kumpulan hanya satu lajur diletakkan, maka anda mempunyai pilihan untuk menggunakan mod paparan Pandangan Agregat(lihat Rajah 8.3). Mod ini didayakan menggunakan arahan Pandangan Agregat daripada menu yang sama Lihat.

nasi. 8.3. Mod Paparan Pandangan Agregat

3. Anda boleh membuka acara yang disimpan dalam fail dan surih jadual dalam profiler. Ia juga mungkin untuk mengulangi operasi yang dirakam menggunakan menu Main semula;

4. Anda boleh mengaitkan maklumat surih dengan kaunter prestasi Monitor Sistem. Untuk ini:

· tentukan sesi pengesanan di mana maklumat untuk lajur mesti direkodkan Masa mula Dan Masa tamat;

· mulakan sesi pengesanan dengan merekod maklumat ke fail atau jadual. Pada masa yang sama, kumpulkan protokol bacaan meter ke dalam fail Pemantau Prestasi;

· buka maklumat yang dikumpul daripada fail surih dalam profiler, dan kemudian gunakan arahan Import Data Prestasi daripada menu Fail.

Dalam kerja kami, kami agak kerap menghadapi situasi di mana permintaan tertentu lambat, dan tiada masalah yang jelas kelihatan daripada teks permintaan itu. Biasanya dalam kes ini adalah perlu untuk menyiasat masalah pada tahap yang lebih mendalam. Sebagai peraturan, terdapat keperluan untuk melihat teks pertanyaan SQL dan rancangannya, dan di sinilah SQL Profiler membantu kami.

Apakah SQL Profiler dan mengapa ia diperlukan?

SQL Profiler ialah program yang dibekalkan dengan MS SQL Server dan direka bentuk untuk melihat semua peristiwa yang berlaku dalam pelayan SQL atau, dengan kata lain, untuk merekodkan jejak.

Mengapakah pengaturcara 1C memerlukan SQL Profiler?

Sekurang-kurangnya untuk mendapatkan teks pertanyaan dalam SQL dan melihat rancangannya. Sudah tentu, ini boleh dilakukan dengan bantuan majalah teknologi, tetapi ini memerlukan beberapa kemahiran, dan rancangan dalam jurnal teknikal tidak begitu cantik dan boleh dibaca.

Dalam profiler anda boleh melihat bukan sahaja teks, tetapi juga pelan pelaksanaan pertanyaan grafik, yang pada pendapat saya lebih mudah.

Anda juga boleh menggunakan profiler untuk menentukan:

permintaan lebih lama daripada masa tertentu

pertanyaan terhadap jadual tertentu

menunggu untuk menyekat

tamat masa

kebuntuan

dan banyak lagi…

Menganalisis Pertanyaan dengan SQL Profiler

Profiler paling kerap digunakan untuk menganalisis pertanyaan. Sebagai peraturan, kita tidak perlu menjejaki semua pertanyaan; selalunya kita perlu melihat cara pertanyaan tertentu dalam bahasa 1C diterjemahkan ke dalam SQL dan melihat rancangan pelaksanaannya. Sebagai contoh, kami mungkin memerlukan ini untuk menentukan sebab pertanyaan berjalan perlahan, atau kami mungkin telah menulis pertanyaan besar dan ingin memastikan bahawa badan pertanyaan SQL tidak mengandungi cantuman kepada subkueri.

Untuk menangkap permintaan dalam jejak, lakukan perkara berikut:

1. Lancarkan SQL Profiler

Mula - Semua Program - Microsoft SQL Server 2008 R2 - Alat Produktiviti - SQL Profiler

2. Buat jejak baharu

Fail – Cipta Jejak (Ctrl+N)
3. Tentukan pelayan DBMS di mana pangkalan data kami terletak dan klik "Sambung".

Sememangnya, tiada apa yang menghalang anda daripada mengesan pelayan DBMS yang terletak pada komputer lain.

4. Dalam tetingkap "Trace Properties" yang muncul, pergi ke tab kedua "Pilih Acara"

5. Sekarang kita perlu menentukan peristiwa dan sifat peristiwa ini yang ingin kita lihat dalam jejak.

Kami memerlukan pertanyaan dan rancangan pertanyaan, jadi kami perlu mendayakan acara yang sesuai. Untuk memaparkan senarai lengkap sifat dan acara, dayakan bendera "Tunjukkan semua lajur" dan "Tunjukkan semua acara".

Penerangan acara:

ShowplanStatisticsProfile – pelan pelaksanaan pertanyaan teks

ShowplanXMLStatisticsProfile – pelan pelaksanaan pertanyaan grafik

RPC: Selesai – minta teks jika ia dilaksanakan sebagai prosedur (jika permintaan 1C dengan parameter dilaksanakan).

SQL:BatchCompleted – teks pertanyaan jika ia dilaksanakan sebagai pertanyaan biasa (jika pertanyaan 1C telah dilaksanakan tanpa parameter).

6. Sekarang anda perlu menyediakan penapis untuk acara. Jika ini tidak dilakukan, maka kami akan melihat pertanyaan untuk semua pangkalan data yang terdapat pada pelayan DBMS ini.

Klik butang "Penapis Lajur" dan tentukan penapis mengikut nama pangkalan data

Sekarang kita akan melihat dalam jejak hanya permintaan ke pangkalan data "TestBase_8_2".

Jika mahu, anda boleh menapis mengikut medan lain, yang paling menarik ialah: Tempoh, TextData (biasanya teks permintaan) dan RowCounts (bilangan baris yang dikembalikan oleh permintaan).

Sebagai contoh, jika saya perlu menangkap semua permintaan ke jadual "_InfoRg4312" yang berlangsung lebih daripada 3 saat dalam pangkalan data "TestBase_8_2", maka saya lakukan:

a) Tapis mengikut pangkalan data, contoh ditunjukkan di atas

b) Tapis mengikut tempoh dalam milisaat.

c) Tapis mengikut teks permintaan

Di sini kami menentukan topeng. Jika anda perlu menjejak pertanyaan yang mengakses berbilang jadual, kemudian buat beberapa elemen dalam bahagian "Serupa dengan". Semua keadaan penapis berfungsi bersama.

7. Sekarang anda boleh menjalankan jejak. Klik "Jalankan", selepas itu pengesanan mula berfungsi, dan anda boleh melihat peristiwa yang telah anda konfigurasikan untuk dipaparkan dan yang berada di bawah penapis anda.

Anda boleh menggunakan butang pada bar arahan untuk mengawal jejak.

Dari kiri ke kanan:

Pemadam – mengosongkan tetingkap jejak

Mula - mula mengesan

Jeda – jeda penjejakan; apabila anda mengklik pada Mula, penjejakan diteruskan

Berhenti - berhenti mengesan

8. Tingkap pengesanan itu sendiri terdiri daripada dua bahagian. Di bahagian atas ialah acara dan sifat acara.

Bahagian bawah memaparkan maklumat yang berbeza bergantung pada jenis acara. Dalam kes kami, sama ada teks permintaan atau rancangannya akan dipaparkan di sini.

9. Mari kita laksanakan permintaan dalam konsol pertanyaan 1C dan lihat bagaimana ia ditunjukkan dalam profiler.

Jejak menunjukkan bahawa terdapat beberapa permintaan dan hanya satu daripadanya adalah permintaan kami. Permintaan lain adalah permintaan perkhidmatan.

10. Daripada sifat peristiwa, anda boleh memahami: berapa saat pertanyaan telah dilaksanakan (Tempoh), berapa banyak bacaan logik terdapat (Bacaan), berapa banyak baris pertanyaan dikembalikan sebagai hasilnya (RowCounts), dsb.

Dalam kes saya, pertanyaan dijalankan selama 2 milisaat, melakukan 4 bacaan logik dan mengembalikan 1 baris.

11. Jika kita naik satu acara, kita boleh melihat pelan pertanyaan dalam bentuk grafik.

Seperti yang dapat dilihat dari rancangan itu, carian dijalankan mengikut indeks mengikut harga, walaupun pelan ini tidak boleh dipanggil ideal, kerana indeks tidak meliputi, medan kod dan nama diperoleh menggunakan KeyLookup, yang mengambil masa 50% daripada masa.

Menggunakan menu konteks, pelan grafik boleh disimpan sebagai fail berasingan dengan sambungan *.SQLPlan dan dibuka dalam profiler pada komputer lain atau menggunakan program Penjelajah Pelan Sentry SQL yang lebih maju.

12. Jika kita pergi lebih tinggi, kita akan melihat pelan pertanyaan yang sama, tetapi dalam bentuk teks.

Pelan inilah yang dipaparkan dalam TZ, TsUP dan alat pemantauan prestasi 1C yang lain. Untuk menganalisisnya, saya mengesyorkan menggunakan editor teks lanjutan dengan lampu latar, seperti Notepad++.

a) Dalam format profiler itu sendiri, i.e. dengan sambungan *.trc

b) Dalam format xml

c) Anda boleh membuat templat daripada jejak. Lihat titik seterusnya.

Seterusnya, anda perlu memilih pangkalan data pada pelayan yang ditentukan dan nyatakan nama jadual di mana jejak akan disimpan. Anda boleh memilih jadual sedia ada, atau menulis nama baharu, dan kemudian jadual akan dibuat secara automatik dalam pangkalan data yang dipilih.

Ia harus diambil kira bahawa Tempoh disimpan dalam jadual dalam sepersejuta saat dan apabila memaparkan hasilnya, adalah dinasihatkan untuk menukar nilai kepada milisaat. Lajur RowNumber juga ditambahkan pada jadual, yang menunjukkan bilangan baris ini dalam surih.

14. Jika anda sering perlu menggunakan profiler untuk menganalisis permintaan, maka menyediakan penapis dan acara yang diperlukan dengan cepat akan menjadi membosankan dan juga akan mengambil banyak masa.

Templat jejak datang untuk menyelamatkan, di mana kami menentukan penapis yang kami perlukan dan susunan lajur, dan kemudian hanya pilih templat ini apabila mencipta jejak baharu.

Untuk mencipta templat, gunakan menu Fail – Templat – Templat Baharu

Pada tab pertama semuanya mudah. Kami menunjukkan jenis pelayan, nama templat dan, jika perlu, tetapkan bendera untuk menggunakan templat ini secara lalai.

Pada tab kedua, kami memilih acara dan mengkonfigurasi penapis, seperti yang telah ditunjukkan di atas.

Kini, apabila mencipta jejak baharu, anda hanya boleh menentukan templat yang diperlukan, selepas itu semua penapis dan acara akan diisi secara automatik pada tab kedua.

Sudah tentu, tidak semua cara untuk menggunakan alat hebat ini ditunjukkan di sini; Saya fikir pada masa akan datang saya akan menambah koleksi artikel mengenai topik ini.

Jika anda masih mempunyai soalan tentang menggunakan SQL Profiler, tanya mereka dalam ulasan, saya akan dengan senang hati menjawab.

Hari ini kami akan mengukur prestasi aplikasi kami menggunakan Alat Pemprofilan Visual Studio.

Alat Pemprofilan Visual Studio membolehkan pembangun mengukur dan menilai prestasi aplikasi dan kod. Alat ini dibina sepenuhnya ke dalam IDE untuk memberikan kawalan lancar kepada pembangun.
Dalam tutorial ini kami akan memprofilkan aplikasi langkah demi langkah PeopleTrax menggunakan Persampelan Dan Instrumentasi Teknik pemprofilan untuk mengenal pasti masalah dalam prestasi aplikasi.

Banyak gambar.

Persediaan

Untuk bekerja dengan panduan ini, anda memerlukan:
  • Microsoft Visual Studio 2010
  • Pengetahuan purata bahasa C#
  • Salinan aplikasi ujian PeopleTrax, anda boleh memuat turunnya dari Galeri Kod MSDN

Kaedah pemprofilan

Mari berundur sedikit dari topik utama artikel dan pertimbangkan kaedah pemprofilan yang mungkin. Bab ini boleh dilangkau; kaedah pemprofilan yang digunakan akan diterangkan secara ringkas sebelum digunakan.
Persampelan
Persampelan— mengumpul data statistik tentang pengendalian aplikasi (semasa pemprofilan). Kaedah ini ringan dan oleh itu, hasil daripada operasinya, terdapat sedikit ralat dalam data yang diperoleh.

Setiap selang masa tertentu, maklumat tentang timbunan panggilan dikumpul. Berdasarkan data ini, produktiviti dikira. Digunakan untuk pemprofilan awal dan untuk mengenal pasti masalah yang berkaitan dengan penggunaan pemproses.

Instrumentasi
Instrumentasi— mengumpul maklumat terperinci tentang masa operasi setiap fungsi yang dipanggil. Digunakan untuk mengukur prestasi operasi I/O.

Kaedah ini membenamkan kodnya ke dalam fail binari yang merekodkan maklumat masa untuk setiap fungsi dalam fail dan untuk setiap fungsi yang dipanggil di dalamnya.

Laporan itu mengandungi 4 nilai untuk menyediakan masa berlalu:

  • Inklusif Berlalu- jumlah masa yang digunakan untuk melaksanakan fungsi
  • Permohonan Termasuk- masa yang digunakan untuk melaksanakan fungsi, tidak termasuk masa panggilan ke sistem pengendalian.
  • Eksklusif Berlalu- masa yang dihabiskan untuk melaksanakan kod dalam badan. Masa yang dibelanjakan oleh fungsi yang dipanggil oleh fungsi sasaran.
  • Permohonan Eksklusif- masa yang dihabiskan untuk melaksanakan kod dalam badan. Tidak termasuk masa yang digunakan untuk melaksanakan panggilan sistem pengendalian dan masa yang digunakan untuk melaksanakan fungsi yang dipanggil oleh fungsi sasaran.
Concurrency
Concurrency– mengumpul maklumat tentang aplikasi berbilang benang (untuk cara menyahpepijat aplikasi berbilang benang, lihat "Panduan untuk Menyahpepijat Aplikasi Berbilang Benang dalam Visual Studio 2010"). Kaedah mengumpul maklumat tindanan panggilan terperinci apabila benang bersaing terpaksa menunggu akses kepada sumber.
.Memori BERSIH
.Memori BERSIH- Pemprofil mengumpul maklumat tentang jenis, saiz dan bilangan objek yang dicipta dalam pengedaran atau dimusnahkan oleh pemungut sampah. Pemprofilan memori hampir tidak mempunyai kesan ke atas prestasi aplikasi secara keseluruhan.
Interaksi Peringkat
Interaksi Peringkat– menambah maklumat pada fail pemprofilan tentang panggilan segerak ADO.NET antara muka surat ASP.NET atau aplikasi lain dan SQL pelayan. Data termasuk bilangan dan masa panggilan, serta masa maksimum dan minimum.

Ini menyimpulkan pertimbangan kami tentang kaedah pemprofilan dan kami akan terus mempelajari cara membuat profil aplikasi.

Pemprofilan melalui kaedah Persampelan

Pensampelan ialah teknik pemprofilan yang meninjau secara berkala proses berkenaan untuk menentukan fungsi aktif. Hasilnya menunjukkan bilangan kali fungsi berada pada permulaan timbunan panggilan semasa ujian.
Pemprofilan
Buka projek ujian PeopleTrax. Tetapkan konfigurasi kepada Lepaskan(Maklumat tambahan dibina ke dalam versi Nyahpepijat untuk nyahpepijat aplikasi, dan ia akan memberi kesan buruk pada ketepatan keputusan pemprofilan).

Pada menu Menganalisis Klik pada Lancarkan Wizard Prestasi.

Pada langkah ini, anda perlu memilih kaedah pemprofilan. Pilih Persampelan CPU (disyorkan) dan klik Seterusnya.

Kami memilih aplikasi mana yang akan kami profilkan, ini PeopleTrax dan butang Seterusnya. Seterusnya, klik Selesai dan profiler dan aplikasi kami akan dilancarkan secara automatik. Pada skrin kita melihat program PeopleTrax. tekan butang Dapatkan Orang, tunggu kerja siap dan Eksport Data. Tutup pad nota dan program serta pemprofil akan menjana laporan.

Pemprofil menghasilkan laporan (*.vsp)

Analisis laporan kaedah Persampelan
DALAM Ringkasan graf penggunaan CPU dipaparkan sepanjang masa pemprofilan. Senaraikan Laluan Panas menunjukkan urutan panggilan yang menunjukkan paling banyak aktiviti. Dan dalam senarai Fungsi Melakukan Kebanyakan Kerja Individu(nama yang bercakap untuk dirinya sendiri) - fungsi yang diduduki b O masa proses yang lebih lama dalam badan fungsi ini.

Melihat senarai Laluan Panas kita lihat bahawa kaedah PeopleNS.People.GetNames menduduki hampir tempat terakhir dalam benang cabaran. Ia kemudiannya boleh dikaji dengan lebih teliti untuk meningkatkan prestasi. Klik pada PeopleNS.People.GetNames dan ia terbuka di hadapan kita Butiran Fungsi.

Tetingkap ini mengandungi dua bahagian. Tetingkap kos menyediakan gambaran grafik tentang cara fungsi berfungsi, dan sumbangan fungsi serta pemanggilnya kepada bilangan kejadian yang telah dijadikan sampel. Anda boleh menukar fungsi berkenaan dengan mengklik padanya menggunakan tetikus.

Pandangan Kod Fungsi menunjukkan kod kaedah apabila ia tersedia dan menyerlahkan baris paling mahal dalam kaedah yang dipilih. Apabila kaedah dipilih GetNames ia boleh dilihat bahawa ia membaca rentetan daripada sumber aplikasi menggunakan Pembaca String, menambah setiap baris ke ArrayList. Tidak ada cara yang jelas untuk memperbaiki bahagian ini.

Kerana PeopleNS.People.GetPeople satu-satunya yang menelefon GetNames– tekan GetPeople. Kaedah ini kembali ArrayList objek PersonInformationNS.PersonInformation dengan nama orang dan syarikat yang dikembalikan dengan kaedah tersebut GetNames. Namun begitu, GetNames dipanggil dua kali setiap kali ia dicipta Maklumat Orang. (Ini ditunjukkan oleh penonjolan kuning dan merah). Jelas sekali, anda boleh mengoptimumkan kaedah dengan mudah dengan mencipta senarai sekali sahaja pada permulaan kaedah.

Versi alternatif GetPeople juga dalam kod dan kami akan membolehkannya sekarang. Untuk melakukan ini, anda perlu menentukan OPTIMIZED_GETPEOPLE sebagai simbol kompilasi bersyarat dalam tetingkap sifat projek Orang ramai Dan PeopleTrax. Dan ya, jika anda ingin mengulangi eksperimen saya, anda perlu membetulkan ralat dalam projek. Dalam pembina kelas yang dioptimumkan, nama sumber tidak ditulis dengan betul: anda memerlukan PeopleNS.Resources bersama-sama dengan PeopleNS.Resource. Jika ini tidak diubah, semuanya akan berakhir dengan ralat yang dahsyat.

Kaedah yang dioptimumkan akan menggantikan yang lama pada binaan seterusnya.

Mulakan semula pemprofilan dalam sesi semasa dengan mengklik Lancarkan dengan Pemprofilan dalam tingkap Penjelajah Prestasi. Klik pada Dapatkan Orang Dan Eksport Data. Tutup pad nota dan program serta pemprofil akan menjana laporan baharu.

Untuk membandingkan dua laporan, pilih kedua-duanya dan RMB Bandingkan Laporan Prestasi. Lajur delta menunjukkan perbezaan dalam prestasi versi Garis dasar dari kemudian Perbandingan. pilih Sampel Termasuk % dan Mohon.

Seperti yang anda lihat, peningkatan prestasi dapat dilihat dengan mata kasar

Pemprofilan menggunakan kaedah Instrumentasi

Kaedah ini berguna untuk memprofilkan I/O, penulisan cakera dan komunikasi rangkaian. Kaedah ini memberikan lebih banyak maklumat daripada yang sebelumnya, tetapi ia memerlukan lebih banyak overhed. Perduaan yang diperoleh selepas memasukkan kod tambahan adalah lebih besar daripada biasa dan tidak bertujuan untuk penggunaan.

Kali ini kami akan memfokuskan analisis kami pada eksport data, di mana senarai orang ditulis pada fail notepad.

Pemprofilan
DALAM Penjelajah Prestasi pilih Instrumentasi dan klik Mula Pemprofilan. Klik Dapatkan Orang. Selepas memuatkan orang, tunggu 10 saat dan klik Eksport Data. Tutup notepad dan program. Pemprofil akan menghasilkan laporan.
Analisis
Profiler akan menunjukkan gambar ini:

Kami tidak mendapat maklumat yang kami mahukan. Mari tapis data. Kami secara khusus menunggu 10 saat untuk hanya menapis data pemprofilan yang tidak lagi diperlukan. Tandakan dari 13 hingga akhir dan tekan Tapis mengikut pilihan. Keputusan lain:

Laluan Panas menunjukkan bahawa kaedah Concat mengambil banyak masa (ia juga yang pertama dalam senarai Fungsi Dengan Kebanyakan Kerja Individu). Klik pada Concat untuk melihat maklumat terperinci tentang kaedah.

Ia adalah jelas bahawa PeopleTrax.Form1.ExportData adalah satu-satunya kaedah yang memanggil Concat. klik PeopleTrax.Form1.ExportData dalam kaedah panggilan ( Fungsi memanggil fungsi ini).

Mari analisa kaedah dalam tetingkap kod. Ambil perhatian bahawa tiada panggilan terus ke Concat. Bersama-sama dengan ini terdapat penggunaan operan += , yang digantikan oleh pengkompil dengan kaedah System.String.Concat. Seperti yang hampir semua orang sedia maklum, sebarang perubahan pada rentetan dalam .NET mengakibatkan kemusnahan versi lama rentetan dan penciptaan rentetan yang diubah suai. Nasib baik .NET ada kelas StringBuilder yang direka untuk jenis kerja ini.

Projek ini sudah mempunyai kaedah yang dioptimumkan menggunakan StringBuilder. Dalam projek PeopleTrax, tambahkan pembolehubah kompilasi OPTIMIZED_EXPORTDATA. Kami menyimpan dan menjalankan profiler sekali lagi dan membandingkan laporan. Ia serta-merta jelas (dan boleh difahami secara logik) bahawa kami telah mengoptimumkan panggilan Concat (dari 6000 hingga 0 kali).

Selepas melancarkan aplikasi, anda boleh melihat peningkatan yang ketara dalam prestasi. Adalah sangat penting untuk menjalankan pemprofilan semula, walaupun terdapat peningkatan yang dapat dilihat. Menyemak data baharu selepas membetulkan masalah mungkin mendedahkan masalah lain dalam prestasi aplikasi.

Salah satu alat kegemaran saya ialah SQL Server Profiler, selalunya dirujuk sebagai Profiler. Utiliti ini memaparkan data pada sebarang bilangan peristiwa Pelayan SQL terperinci. Peristiwa pelayan ini boleh dilihat dalam tetingkap Trace Properties (Rajah 49.3), dan juga boleh direkodkan dalam fail atau jadual untuk analisis kemudian. Penapis boleh ditetapkan untuk mendaftarkan semua acara atau subset terpilih daripadanya.

Puc. 49.2. Dalam contoh ini, protokol kaunter akan merekodkan maklumat

tentang prestasi SQL Server dalam direktori C:\Perf Logs

Anda boleh melancarkan SQL Server Profiler dari menu Tools dalam Management Studio atau terus dari folder SQL Server 2005 dalam menu Start. Untuk melihat aktiviti, anda mesti sama ada menentukan jejak baharu atau menggunakan fail sedia ada.

Dengan keluaran SP1, SQL Server Profiler menerima Perhatian! mengesan set data yang besar pada komputer yang besar.

Selain itu, sebelum ini semasa memantau perkhidmatan analisis, masa dipaparkan dalam unit Masa Masa Sejagat (UTC). Masa sistem tempatan kini digunakan. Sebelum ini, peristiwa yang berjaya dihasilkan semula tidak dikira dengan betul, menyebabkan pengguna menerima statistik yang salah. Isu ini telah diselesaikan.

Menentukan Jejak Baharu

Apabila jejak baharu dicipta (sama ada menggunakan perintah menu File^New Trace atau butang bar alat Jejak Baharu), sambungan baharu ke SQL Server juga dibuat dan kotak dialog Trace Properties dibuka (Rajah 49.4). Dalam tab Umum tetingkap ini, jejak dikonfigurasikan (khususnya, nama, lokasi fail, dll.), dan dalam tab Pemilihan Acara, peristiwa, data dan penapis yang akan dilog ditakrifkan. Jika pengesanan sedang berjalan, parameter ini boleh dilihat tetapi tidak diubah. Konfigurasi jejak boleh disimpan sebagai templat untuk memudahkan anda mencipta jejak baharu pada masa hadapan.

nasi. 49.4. Tab Pemilihan Acara pada tetingkap Trace Properties membolehkan anda memilih acara yang dijejaki oleh utiliti Profiler

Surih boleh dilihat dalam masa nyata, tetapi data mungkin ditulis pada fail atau jadual SQL Server pada masa yang sama. Ini berguna untuk perlombongan kemudian, perbandingan dengan data kaunter monitor sistem, atau import ke dalam utiliti Penasihat Penalaan Enjin Pangkalan Data.

Apabila bacaan ditulis pada fail, ia disatukan ke dalam rantaian 128 KB untuk meningkatkan prestasi; begitu juga, apabila menulis pada jadual, data dikumpulkan kepada beberapa baris.

Untuk menyimpan data yang ditangkap oleh Profiler untuk analisis kemudian, gunakan kaedah fail berprestasi tinggi serta pengesanan pelayan (kita akan membincangkan perkara ini kemudian). Jika anda ingin menganalisis data menggunakan penyataan T-SQL, gunakan pendekatan yang sama, tetapi selepas menyelesaikan sesi pengesanan, buka fail yang terhasil dalam utiliti Profiler dan pilih Fail^Simpan Sebagai^Jadual daripada menu.

Pemilihan Acara

Tab Pemilihan Acara menentukan senarai tindakan yang dilakukan oleh pelayan pangkalan data yang akan direkodkan oleh utiliti Profiler. Sama seperti Pemantau Prestasi, Profiler boleh memantau banyak peristiwa Pelayan SQL utama. Untuk memudahkan persediaan pemilihan, anda boleh menggunakan templat lalai.

I Acara SQL Batch Completed adalah berdasarkan pelaksanaan kelompok T-SQL dalam

SVS secara keseluruhan (paket dipisahkan oleh terminator), dan bukan arahan individu.

| * Berdasarkan ini, Profiler merekodkan data tentang hanya satu peristiwa, tanpa mengira

Simo bergantung pada panjang pakej. Untuk merekodkan pelaksanaan arahan individu

DML menggunakan acara SQL Statement Complete.

Tidak semua peristiwa boleh digunakan untuk menghasilkan semula jejak. Sebagai contoh, acara SQL Batch Start boleh dimainkan semula, tetapi acara SQL Batch Complete tidak boleh.

Bergantung pada peristiwa, data berbeza tersedia untuk dikesan. Walaupun lajur data SPID kelihatan sebagai pilihan, ia adalah mengelirukan; ia diperlukan.

Penapisan acara

Profiler mampu mengumpul begitu banyak maklumat untuk anda sehingga ia boleh mengisi pemacu cakera dengan mudah dalam sekelip mata. Nasib baik, penapis program (Rajah 49.5) akan membantu anda mengehadkan tatasusunan ini kepada data yang menarik minat anda sahaja.

nasi. 49.6. SQL Server Profiler boleh menyepadukan data monitor prestasi dan menyegerakkannya dengan acara yang dipantau

Menggunakan SQL Trace

SQL Profiler biasanya digunakan secara interaktif dan mencukupi untuk pengumpulan data sekejap-sekejap. Walau bagaimanapun, jejak yang berjalan lama dengan mudah boleh mengumpul ratusan ribu rekod, yang boleh menyebabkan masalah yang sangat spesifik pada stesen kerja yang menjalankan jejak. Penyelesaiannya adalah untuk mencipta log jejak terus pada pelayan. Pengesanan ini akan menyebabkan sedikit beban tambahan pada pelayan; dalam kes ini, fail akan ditulis dalam blok 128 KB.

Dalam sistem perindustrian yang melakukan pengesanan sebelah pelayan, menulis data pada fail pada pelayan ialah cara terbaik untuk mengumpul maklumat

tentang prestasi sambil meminimumkan beban tambahan pada pelayan.

Pengesanan yang dilakukan pada pelayan boleh ditakrifkan dan dilaksanakan menggunakan satu set prosedur tersimpan sistem. Anda boleh menulis kod program sendiri atau menggunakan program SQL Server Profiler.

Setelah jejak dikonfigurasikan dan diuji dalam SQL Server Profiler, pilih File^Export^Trace Definition^For SQL Server 2005 daripada menu untuk menjana skrip T-SQL yang boleh melakukan pengesanan sebelah pelayan.

I Untuk mengetahui jejak yang sedang dijalankan pada pelayan, tanya soalan

Pandangan namik SVS bagi systraces kawalan. Apabila anda melihat hasil I* pertanyaan ini, anda akan melihat jejak balik tambahan. Nombor * pertama sentiasa dipanggil jejak lalai, yang mengumpul data untuk log SQL Server - ia tidak boleh dihentikan.

Untuk menghentikan pengesanan pelayan, gunakan prosedur tersimpan sistem sp_trace_setstatus. Argumen pertamanya (traceid) ialah pengecam jejak, dan yang kedua menentukan sifat tindakan. Nilai sifar untuk parameter tindakan menyebabkan surih berhenti, nilai satu untuk memulakannya dan nilai dua untuk menutup dan memadamkannya. Kod berikut menghentikan jejak nombor 2.

Dalam kuliah ini, kami akan meneruskan kajian prosedur tersimpan yang kami mulakan dalam "Mencipta dan Mengurus Prosedur Tersimpan." Anda akan belajar cara menganalisis prosedur tersimpan dan pernyataan T-SQL lain menggunakan Penganalisis Pertanyaan Pelayan Microsoft SQL dan Profiler Pelayan SQL. Daripada analisis ini, anda boleh menentukan keberkesanan penyataan T-SQL. Pertanyaan SQL Server yang cekap menggunakan urutan operasi yang sesuai dan indeks yang sesuai untuk mengurangkan bilangan baris yang diproses dan meminimumkan bilangan operasi I/O.

Menggunakan Penganalisis Pertanyaan, anda boleh melihat pelan pelaksanaan yang dipilih untuk pernyataan T-SQL pengoptimum pertanyaan Pelayan SQL Pengoptimum Pertanyaan ialah modul dalaman yang mencari pelan pelaksanaan terbaik untuk setiap pernyataan T-SQL. Pengoptimum Pertanyaan menganalisis setiap pernyataan T-SQL, melihat beberapa kemungkinan rancangan pelaksanaan, dan menilai "kos" setiap rancangan dari segi sumber yang diperlukan dan masa pemprosesan. Pelan dengan kos terendah dipilih. Kos setiap pelan ditentukan berdasarkan statistik yang tersedia, yang dikumpul oleh sistem dan mungkin sudah lapuk. Kerana anda mungkin tahu lebih banyak tentang pangkalan data anda dan data anda daripada pengoptimum pertanyaan, maka anda mungkin boleh membuat rancangan yang lebih baik daripada pengoptimum pertanyaan. Menggunakan maklumat yang dihasilkan oleh Penganalisis Pertanyaan, anda boleh menentukan sama ada rancangan pengoptimum pertanyaan untuk pernyataan tertentu akan berkesan dan jika tidak, anda boleh cuba mengoptimumkan pernyataan itu dengan mengubah suai atau menggunakan pembayang SQL. Dalam kuliah ini, anda akan belajar cara mengoptimumkan pernyataan T-SQL selain mempelajari cara menggunakan Penganalisis Pertanyaan.

Menggunakan Profiler, anda boleh menganalisis operasi dalam sistem SQL Server anda untuk menentukan pernyataan SQL dan prosedur tersimpan yang menggunakan sumber sistem yang tidak diperlukan. Dengan maklumat ini, anda boleh menumpukan usaha penalaan anda terutamanya pada kenyataan dan prosedur tersimpan ini. Di samping menerangkan cara menggunakan Profiler, kuliah ini juga menunjukkan cara menggunakan maklumat yang diperoleh dengan menggunakan Profiler dengan paling berkesan.

Menggunakan Penganalisis Pertanyaan SQL

Utiliti Query Analyzer dihantar dengan Microsoft SQL Server 2000 untuk menggantikan