Tempdb server (SQL Server 2008) meningkat hingga 500GB + beberapa kali setiap bulan. Apakah mungkin untuk mengetahui pernyataan SQL mana yang menyebabkan masalah ini? Masalahnya biasanya bukan disebabkan oleh create table #temp...; insert into #temp...
atau select ... into #temp...
tetapi gabungan kompleks.
The Ukuran awal dari beberapa file tempdb juga secara otomatis mengatur banyak nilai-nilai yang lebih besar setiap kali. Bagaimana cara mencegahnya?
Kadang-kadang paket yang di-cache mencegah mengubah ukuran / menyusutkan file. Bagaimana menemukan yang mana yang memegang tempdb?
sql-server
sql-server-2008
tempdb
u23432534
sumber
sumber
Jawaban:
Ada tiga DMV yang dapat Anda gunakan untuk melacak penggunaan tempdb:
Dua yang pertama akan memungkinkan Anda untuk melacak alokasi di tingkat kueri & sesi. Trek ketiga alokasi di seluruh versi menyimpan, pengguna dan objek internal.
Kueri contoh berikut akan memberi Anda alokasi per sesi:
Jika Anda ingin melacak penggunaan selama periode waktu tertentu, pertimbangkan untuk mengumpulkan data dengan sp_whoisactive , seperti yang ditunjukkan oleh Kendra Little .
sumber
[SPACE Allocated FOR USER Objects (in KB)]
dan[SPACE Deallocated FOR USER Objects (in KB)]
ruang yang ditempati sesi yang sebenarnya?Mungkin ada berbagai sumber masalah:
SORT_IN_TEMPDB = ON
sumber