Situs web kami memiliki database SQL Server 2008 R2 Express Edition dengan pengindeksan teks lengkap untuk pencarian situs web kami. Setiap kali catatan baru ditambahkan atau diperbarui di salah satu tabel yang diindeks, proses pengindeksan tampaknya tidak pernah selesai.
Saya telah memantau status selama beberapa minggu terakhir menggunakan permintaan yang pada dasarnya sama dengan yang ditemukan di situs ini: http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server-search/2155/Why-is-this -populasi-mengambil-begitu-lama
Ini yang saya lihat ketika saya menjalankan kueri (klik untuk ukuran penuh):
Catatan terbaru dalam tabel yang diindeks tidak pernah lengkap dan tidak dapat dicari. Meskipun tidak ada banyak data dalam tabel, saya telah menunggu berhari-hari untuk melihat apakah pengindeksan selesai, tetapi tidak ada yang berubah.
Satu-satunya cara saya berhasil menyelesaikan pengindeksan adalah dengan membangun kembali katalog atau untuk menjatuhkan dan membuat kembali semua indeks.
Setiap kali saya melakukan itu, masalah yang sama akhirnya kembali segera setelah catatan baru pertama ditambahkan.
Berikut adalah statistik server untuk berjaga-jaga:
- Quad-Core AMD Opteron 2.34GHz
- RAM 4GB
- Windows Server 2008 R2 Enterprise SP1 x64
- SQL Server 2008 R2 Express Edition dengan Layanan Lanjutan x64
Berikut ini adalah skrip yang saya buat menggunakan kursor untuk membangun kembali dan mengisi indeks lengkap untuk tabel apa pun yang memiliki satu untuk MSSQL2008. Ini berfungsi di lingkungan produksi dengan basis data yang dimigrasikan dari server MSSQL 2000. Saya telah mematikan pelacakan perubahan dan menjalankan prosedur tersimpan ini melalui SQL Server Agent. Jika Anda menggunakan express, Anda bisa menggunakan skrip VBS untuk menjalankannya melalui Penjadwal Tugas.
Penting dalam skrip untuk melakukan pembangunan kembali terlebih dahulu pada setiap katalog sebelum mencoba mengisi indeks.
Adakah yang punya metode yang tidak membutuhkan kursor?
sumber
Biasanya disarankan untuk memperbarui katalog teks lengkap menggunakan pemicu. Itu adalah pendekatan yang saya gunakan pada mssql, tetapi dalam kasus saya karena saya memiliki aplikasi lokal dengan beberapa persyaratan spesifik yang mengarahkan saya ke solusi menggunakan pemicu, bahwa solusi bekerja 100% mulai 2 tahun yang lalu.
Tinjau implementasi Anda terhadap contoh ini .
sumber
Tidak yakin apa penyebab root dalam situasi Anda, tetapi ini bisa terjadi setelah pencadangan terjadi. Tidak yakin apakah itu yang terjadi dalam kasus Anda atau bagaimana tabel itu berbeda dari yang lain. Sekarang Anda membuat saya penasaran. Apakah Anda mengaktifkan replikasi SQL?
Untuk perbaikan sementara, saya akan melakukan "Perayapan" (populasi) di atas meja saat ini terjadi.
http://msdn.microsoft.com/en-us/library/ms142575(v=sql.105).aspx
Gunakan kode ini:
sumber