Di SQL Server 2000, jika Anda ingin mengidentifikasi halaman yang rusak, maka opsi database TORN_PAGE_DETECTION harus disetel ke TRUE.
Tetapi dalam SQL 2005 dan lebih baru, PAGE_VERIFY pengaturan baru menggantikan TORN_PAGE_DETECTION lama yang memungkinkan untuk memilih dari dua jenis verifikasi halaman yang berbeda: TORN_PAGE_DETECTION dan CHECKSUM.
Sekarang muncul pertanyaan yang mana yang harus diatur - TORN_PAGE_DETECTION atau CHECKSUM?
TORN_PAGE_DETECTION - menulis sedikit untuk setiap 512 byte di halaman yang memungkinkan Anda mendeteksi kapan halaman tidak berhasil ditulis ke disk. Tangkapannya adalah ia tidak akan memberi tahu Anda apakah data yang disimpan dalam 512 bye itu benar atau tidak karena fakta bahwa beberapa byte mungkin telah ditulis secara tidak benar.
CHECKSUM - akan mengkalibrasi sebuah checksum dari halaman baik ketika sebuah halaman ditulis maupun ketika sebuah halaman dibaca, dengan asumsi ia memiliki checksum di atasnya.
SQL Server menghitung checksum berdasarkan pola bit pada halaman, menyimpannya di header halaman dan kemudian mengeluarkan I / O untuk menulis halaman. Ketika SQL Server membaca halaman, itu kembali menghitung checksum menggunakan logika yang sama dan kemudian membandingkannya dengan nilai yang tersedia di header halaman. Jika nilai checksum cocok maka diasumsikan halaman tidak rusak selama siklus baca-baca.
Karena biaya komputasi checksum dikeluarkan pada setiap halaman baca dan tulis, itu dapat menambah overhead CPU dan mungkin dapat mempengaruhi throughput beban kerja Anda. Hal lain yang perlu diingat adalah bahwa checksum tidak unik untuk pola bit tertentu pada halaman. Dua halaman mungkin bisa dipetakan ke nilai checksum yang sama. Jadi ada kemungkinan kecil bahwa korupsi halaman dapat tidak terdeteksi.
Referensi: Checksum dalam SQL2005
Untuk secara khusus menjawab pertanyaan Anda:
Saya percaya Checksum diperkenalkan di SQL2005 dan bahwa memutakhirkan atau mengembalikan DB dari versi sebelumnya akan mempertahankan metode verifikasi halaman sebelumnya. yaitu tidak ada peningkatan implisit.
Ya CHECKSUM diperkenalkan di SQL Server 2005 dan merupakan DEFAULT . Ketika Anda meningkatkan dari 2000 ke 2005, Anda harus secara eksplisit mengubah opsi database Page Verify untuk menggunakan CHECKSUM.
Jika Anda mengembalikan database yang sudah dibuat pada sql 2005 ke server lain yang menjalankan sql 2005, Anda tidak perlu mengaturnya. Ini akan bertahan pada apa yang telah Anda atur opsi Verifikasi Halaman.
Saya belum berhasil meneliti ketika Deteksi Halaman Torn masuk
Dari: http://support.microsoft.com/kb/230785
Versi SQL Server lebih awal dari 7.0
Versi SQL Server lebih awal dari 7.0 tidak menyediakan fasilitas deteksi paritas log atau robekan bit. Faktanya, versi-versi itu dapat menulis halaman log yang sama beberapa kali sampai catatan log mengisi halaman log 2-KB. Ini dapat mengekspos transaksi yang telah berhasil dilakukan. Jika halaman log sedang ditulis ulang selama kegagalan, sektor dengan transaksi yang dilakukan mungkin tidak dapat ditulis ulang dengan benar.
Dengan demikian, TORN_PAGE_DETECTION telah ada sejak SQL Server 7.0. Bahkan kemudian, standarnya adalah tidak diaktifkan (tautan yang sama) .
Catatan Deteksi halaman sobek tidak diaktifkan secara default di SQL Server 7.0. Lihat sp_dboption untuk cara mengaktifkan deteksi pada sistem Anda.
Oleh karena itu, jika database dikembangkan terhadap instance 7.0 dan kemudian ditingkatkan, itu akan meningkatkannya dengan opsi PAGE VERIFY NONE yang masih ada (seperti yang dicatat oleh @ThomasStringer dalam jawabannya).
Sunting: 09/24/2013 Untuk meningkatkan jawabannya:
Mengacu pada catatan internal SQL Server SQL saya dari SQLSkills, saya menemukan bahwa menggunakan dump halaman, Anda dapat memverifikasi apakah deteksi bit robek - TORN_PAGE_DETECTION atau CHECKSUM diaktifkan atau tidak:
use database_name -- change here for your database !!
checkpoint
go
dbcc traceon (3604) -- send output to screen
go
dbcc page (dbaalert, 1,1,0)
dbcc traceoff (3604) -- turn off the trace flag
go
m_tornBits : Ini menampung checksum halaman atau bit yang dipindahkan oleh bit perlindungan halaman robek - tergantung pada apa bentuk perlindungan halaman dihidupkan untuk database.
Catatan : Saya tidak memiliki versi server sql lama yang berjalan. Di bawah ini dikonfirmasi dari sql server 2000 dan lebih tinggi . Jika Anda memiliki 7.0 atau 6.5 berlarian, Anda dapat mengkonfirmasinya juga :-)
