Ada banyak Bendera Jejak di luar sana. Beberapa didokumentasikan dengan baik, beberapa tidak, dan yang lain menemukan jalannya ke status perilaku default dalam rilis 2016. Selain saluran dukungan resmi, karyawan Microsoft, dll., Apa saja cara untuk menemukan tanda jejak baru?
Saya telah membaca beberapa posting terbaru oleh Aaron Bertrand di sini dan di sini , tetapi tidak menemukan apa pun tentang Trace Flags baru.
Saya menyalin data dan mencatat file mssqlsystemresource ke lokasi baru, dan melampirkannya seperti database biasa untuk melihat-lihat tabel dan tampilan sistem, tetapi tidak segera menemukan apa pun. Saya mempertimbangkan untuk mengambil daftar Bendera Jejak yang dikenal, dan memeriksa angka-angka yang tidak ada dalam daftar itu, untuk melihat mana yang diizinkan oleh DBCC TRACEON, tetapi ingin mengajukan pertanyaan di sini terlebih dahulu.
Dengan asumsi bahwa perintah DBCC untuk memungkinkan mereka harus memeriksa dengan beberapa sumber daya untuk memastikan Bendera Jejak valid, di mana ia menjangkau? Apakah ada .dll atau file sistem lain yang menyimpan daftar?
Saya tahu pertanyaannya memberikan jaring yang luas, tetapi apa yang memacu hal ini adalah membaca tentang Bendera Jejak dengan perilaku khusus yang dimaksudkan bersama fitur baru pada tahun 2016 yang tidak memiliki efek yang dijelaskan. Pikiran awal saya adalah bahwa mungkin angka-angka diubah entah bagaimana, seperti 7129 menjadi 7219. Saya berharap untuk mendapatkan daftar bendera jejak yang valid dalam rentang, katakanlah 7000-7999, untuk mencari permutasi. Menguji semuanya, baik sebagai flag DBCC TRACEON dan parameter startup akan cukup merepotkan, dikombinasikan dengan menguji hasilnya terhadap perilaku fitur.
sumber
Sebagian besar, hal itu terjadi karena memiliki waktu dan sumber daya emosional untuk dihabiskan untuk mencari mereka.
Tentu saja, adalah mungkin untuk menulis skrip untuk mengulang-ulang nomor bendera jejak yang mungkin dan menganalisis efeknya, tetapi ini tidak selalu berhasil. Ada banyak alasan untuk itu, tetapi frustrasi umum termasuk fakta bahwa beberapa tanda jejak hanya efektif dalam kombinasi dengan yang lain, beberapa hanya bekerja dengan
-T
saat startup, atau ketika digunakan denganDBCC TRACEON
, beberapa hanya denganOPTION (QUERYTRACEON)
. Beberapa memerlukan perintah tanpa dokumen, atau ekstensi perintah, atau untuk fitur tertentu untuk diaktifkan juga. Beberapa hanya menghasilkan efek jika Anda tahu di mana harus mencari efek tersebut. Dan seterusnya dan ... sangat ... seterusnya.Yang mengatakan, mungkin teknik yang paling efektif adalah melangkah melalui pelaksanaan permintaan atau perintah tertentu langkah demi langkah dengan debugger atau alat profil lain yang terpasang, membandingkan jalur yang diambil dengan bendera jejak (s) hidup dan mati. Jika ini kedengarannya menyita waktu, itu karena itu.
Bagi saya, sesuatu harus berpotensi sangat menarik, atau berhubungan dengan masalah dunia nyata tanpa solusi yang lebih baik bagi saya untuk berpikir untuk masuk ke dalamnya. Ini juga berguna jika Anda telah melalui proses ini ratusan atau ribuan kali sebelumnya, untuk mendapatkan perasaan yang luas untuk hal-hal yang Anda cari, rentang bendera jejak mana yang paling mungkin efektif, dan bagian mana yang basis kode akan menarik.
Mengatur breakpoint
CSessionTraceFlags::CheckSessionTraceInternal
dan memeriksa nilaiedx
register (untuk melihat bendera jejak mana yang sedang diperiksa) dapat berguna dalam kasus-kasus sederhana, tetapi kasus-kasus menarik tidak sering sederhana - dan tidak semua bendera jejak diperiksa pada titik di mana mereka memengaruhi jalur kode yang diambil.Ada daftar bendera jejak resmi yang agak kecil . Ini adalah flag yang telah diuji sepenuhnya dan (dan akan) didukung oleh CSS dan, pada akhirnya, pengembang produk. Mereka juga ditandai dengan use case yang cukup umum sehingga layak untuk didokumentasikan.
Bendera jejak lainnya yang Anda temukan adalah keingintahuan yang mungkin memiliki efek tak terduga dalam berbagai situasi (build yang berbeda, SKU, pengaturan keamanan, fitur yang berbeda ... hal lain yang dapat atau tidak dapat Anda pikirkan). Ini hanya akan 'didukung' oleh orang yang menulis tentang mereka, jika sama sekali.
Ada beberapa daftar tidak resmi, yang terbaik yang saya tahu adalah Kumpulan Topikal Bendera SQL Server oleh Aaron Morelli (saat ini di v6, April 2016).
Semua yang dikatakan, Microsoft CSS (akhirnya) memiliki akses ke semua tanda jejak, sehingga mereka mungkin dapat memberi saran kepada Anda tentang apa pun yang Anda temui, bahkan jika mereka tidak ada dalam daftar resmi. Mereka mungkin memilih untuk tidak mengatakan apa-apa, tentu saja, dan mungkin ada biaya yang harus dikeluarkan; Saya benar-benar tidak tahu, tidak pernah menempuh rute itu sendiri.
sumber
Kami memelihara koleksi bendera jejak di github (sekarang 599 bendera jejak):
Bendera Jejak Microsoft SQL Server
Juga, teknik yang sangat bagus yang dijelaskan oleh Brent Ozar dalam artikelnya yang bagus Bad Idea Jeans: Menemukan Bendera Jejak yang Tidak Berdokumen dan Joe Obbish dalam artikel yang luar biasa ini Metode untuk Menemukan Jejak Bendera
sumber