SQL 2005: Bisakah kita menentukan berapa banyak pekerjaan pemeliharaan indeks pembangunan kembali dapat menumbuhkan file log basis data?

10

Pada SQL server 2005, jika semua database dalam mode penuh (dengan backup log transaksi per jam), apakah mungkin untuk menentukan apakah membangun kembali semua indeks dari suatu database dapat menumbuhkan file log dari database? Dan berapa banyak yang bisa tumbuh?

Jika tidak ada jawaban langsung maka arahan apa pun akan sangat dihargai.

Terima kasih sebelumnya.

Manjot
sumber

Jawaban:

9

Ya, Anda harus melihat whitepaper yang sangat baik tentang topik ini meskipun mengacu pada pembangunan kembali indeks online, masih memiliki banyak info bagus

http://technet.microsoft.com/en-us/library/cc966402.aspx

Jika file log tumbuh secara otomatis maka Anda dapat menemukan informasi itu menggunakan jejak default setelah tindakan selesai.

DECLARE @filename VARCHAR(255) 
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

--Check if the data and log files auto-growed. Look for tempdb, log files etc.
SELECT 
    gt.ServerName
    , gt.DatabaseName
    , gt.TextData
    , gt.StartTime
    , gt.Success
    , gt.HostName
    , gt.NTUserName
    , gt.NTDomainName
    , gt.ApplicationName
    , gt.LoginName
FROM [fn_trace_gettable](@filename, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
WHERE EventClass in ( 92, 93 ) --'Data File Auto Grow', 'Log File Auto Grow'
ORDER BY StartTime; 
--
Sankar Reddy
sumber
7

Tidak hanya mungkin mendeteksi jika operasi indeks DDL meningkatkan file log, ini adalah baris tindakan default. Semua operasi indeks dicatat dalam database yang menggunakan model pemulihan penuh.

Saya menyarankan Anda untuk membaca artikel berikut tentang MSDN: Menentukan Persyaratan Ruang Disk Indeks .

Dari bab ke 3 - Ruang Transak Log Transaksi untuk Operasi Indeks dari artikel itu saya akan mengutip:

" Operasi indeks skala besar dapat menghasilkan banyak data besar yang dapat menyebabkan log transaksi terisi dengan cepat. Untuk memastikan bahwa operasi indeks dapat dibatalkan, log transaksi tidak dapat terpotong sampai operasi indeks selesai; namun, log dapat dicadangkan selama operasi indeks. Oleh karena itu, log transaksi harus memiliki ruang yang cukup untuk menyimpan transaksi operasi indeks dan setiap transaksi pengguna bersamaan selama durasi operasi indeks.Ini berlaku untuk operasi indeks offline dan online. Karena tabel yang mendasari tidak dapat diakses selama operasi indeks offline, mungkin ada beberapa transaksi pengguna dan log mungkin tidak tumbuh dengan cepat. Operasi indeks online tidak mencegah aktivitas pengguna bersamaan, oleh karena itu, operasi indeks online skala besar yang dikombinasikan dengan transaksi pengguna bersamaan yang signifikan dapat menyebabkan pertumbuhan berkelanjutan dari log transaksi tanpa opsi untuk memotong log. "

Marian
sumber