- Apa itu bercak panas?
Aaron benar dan saya tidak akan mengulangi apa yang dia katakan di atas, namun ini bukan hanya tentang disk IO. Bagian utama yang sebagian besar orang memiliki masalah dengan di TempDB adalah karena pertentangan pada struktur pelacakan tertentu.
Karena memiliki beberapa file tempdb memungkinkan algoritma isi dan bundar robin proporsional secara efektif terjadi menjadi "adil" di seluruh alokasi, menambahkan file baru tanpa alokasi membuang sedikit. Saya tidak setuju bahwa ini peringatan "sedikit ayam" (lihat pembaruan produk di bawah) jika Anda mulai melihat PAGELATCH_*
menunggu file baru tersebut dan tidak banyak atau ada pada file lain. Ini umumnya terjadi pada sistem yang memiliki aktivitas TempDB tinggi dan sudah memiliki lebih dari satu file.
Harap dicatat bahwa ada opsi dalam SQL Server 2019 untuk mengubah beberapa tabel sistem yang mendasarinya ke dalam tabel di-memori yang dapat memiliki peningkatan karena objek di-memori dialokasikan secara berbeda dari tabel yang dipanggang disk. Tabel berbasis disk adalah tabel tradisional yang telah kita semua kerjakan selama ini. SQL Server 2014 memperkenalkan tabel yang dioptimalkan memori . SQL Server 2019 dapat menangani beberapa alokasi metadata dalam tabel yang dioptimalkan memori.
Perubahan lain dibuat di SQL Server 2019 untuk membantu dengan perubahan PFS bersamaan, yang umumnya menjadi anggapan struktur in-memory dalam alokasi sedang PAGELATCH_*
menunggu.
- Bagaimana dengan bercak panas membuat segalanya lebih buruk di tempdb?
Tidak ada yang IMHO. Ya, TempDB memiliki lebih banyak item yang dapat menyebabkan penulisan padanya tanpa digunakan secara langsung sehingga dapat menghambat beberapa item. Namun, database pengguna yang sangat sibuk dalam hal tingkat perubahan data sama buruknya. Ini tidak terbatas hanya pada TempDB.
- Hal spesifik apa dalam DB yang akan jauh lebih buruk?
Saya sangat menyukai analogi Harun! Itulah inti dari apa yang terjadi. Yang benar-benar menjadi lebih buruk adalah alokasi dan pelacakan ruang untuk objek dalam database. Jika basis data pengguna Anda sebagian besar statis (tingkat perubahan rendah) atau TempDB Anda tidak benar-benar digunakan, Anda tidak akan melihat apa pun. Namun, jika ini adalah server yang cukup sibuk, Anda dapat memulai atau memperburuk menunggu pagelatch yang dapat menyebabkan pemblokiran konvoi.
Aaron sudah menunjukkan bahwa pada versi yang lebih lama ada bendera jejak untuk memastikan bahwa ekstensi yang seragam digunakan dan bahwa semua file dalam filegroup tumbuh bersama (Aaron menunjukkan 1117 dan 1118 yang merupakan NOP pada 2016+). Hal lain yang ingin saya tunjukkan lagi adalah bahwa ini bukan hanya untuk TempDB tetapi untuk database apa pun, dan tata letak fisik harus dipikirkan tergantung pada kebutuhan.
Ini bukan hanya untuk masalah hotspot tetapi berlaku untuk bagian lain dari sistem seperti cadangan / pemulihan, manajemen file, fragmentasi metadata sistem file, dll., Yang semuanya dapat dibantu dengan memiliki banyak file.
Anda dapat melihat anggapan struktur alokasi dengan mencari waitresource
pada halaman PFS (yang merupakan halaman 1, dan kemudian setiap 8.088 halaman). Jika Anda melihat bahwa semua dalam file yang sama (2: file: halaman) maka Anda tahu ini sedang terjadi.