Concurrency tambahan untuk database Code

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 328551 - Melihat produk di mana artikel ini berlaku.
BUG #: 362099 (SHILOH_BUGS)
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Ketika Code database sering digunakan, SQL Server mungkin mengalami pertentangan ketika mencoba untuk mengalokasikan halaman.

Dari sysprocesses Keluaran sistem meja, waitresource mungkin muncul sebagai "2:1:1" (PFS Halaman) atau "2:1:3" (SGAM halaman). Tergantung pada tingkat pertengkaran, ini mungkin juga mengakibatkan SQL Server muncul tidak responsif untuk jangka pendek periode.


Operasi ini sangat menggunakan Code:
  • Berulang membuat dan drop sementara tabel (lokal atau global).
  • Tabel variabel yang digunakan Code untuk tujuan penyimpanan.
  • Bekerja tabel yang terkait dengan KURSOR.
  • Bekerja tabel yang terkait dengan sebuah ORDER BY klausa.
  • Bekerja tabel yang terkait dengan sebuah kelompok oleh klausa.
  • Bekerja file terkait dengan HASH rencana.
Penggunaan berat dan signifikan dari kegiatan ini mungkin menyebabkan masalah contention.

PENYEBAB

Selama pembuatan obyek, dua (2) halaman harus dialokasikan dari dicampur batas dan ditugaskan ke objek baru. Satu halaman adalah untuk indeks Alokasi peta (IAM), dan yang kedua adalah untuk halaman pertama untuk objek. SQL Server trek extent campuran dengan menggunakan Shared Global alokasi peta (SGAM) Halaman. Setiap halaman SGAM trek sekitar 4 gigabytes data.

Sebagai bagian dari mengalokasikan halaman dari sejauh campuran, SQL Server harus memindai Page Free Ruang (PFS) halaman untuk mengetahui halaman yang campuran gratis dialokasikan. PFS Halaman terus melacak dari ruang kosong yang tersedia pada setiap halaman, dan setiap halaman PFS trek sekitar 8000 halaman. Sinkronisasi sesuai dikelola untuk membuat perubahan ke halaman PFS dan SGAM; dan yang dapat kios lain pengubah untuk jangka pendek periode.

Ketika SQL Server mencari halaman campuran untuk mengalokasikan, itu selalu dimulai scan pada file yang sama dan halaman SGAM. Hal ini mengakibatkan intens pertentangan pada halaman SGAM ketika beberapa halaman campuran alokasi sedang berlangsung, yang dapat menyebabkan masalah didokumentasikan dalam bagian "Gejala" ini artikel.

Catatan De-alokasi kegiatan juga harus memodifikasi halaman, yang dapat berkontribusi untuk peningkatan pertikaian.

Untuk mempelajari lebih lanjut tentang alokasi berbagai mekanisme yang digunakan oleh SQL Server (SGAM, GAM, PFS, IAM), melihat bagian "Referensi" artikel ini.

PEMECAHAN MASALAH

Untuk mengurangi alokasi sumber daya pertentangan bagi Code yang mengalami berat penggunaan, ikuti langkah-langkah berikut:
  1. Untuk server yang menjalankan SQL Server 2000 Paket Layanan 3 (SP3), menerapkan perbaikan terbaru 8.00.0765 atau keamanan terbaru memperbaiki 8.00.0818. Untuk server yang menjalankan SQL Server SP2, gunakan perbaikan terbaru 8.00.0702.

    Perbaikan ini tersedia dari lokasi-lokasi berikut:

    8.00.0765
    814916 FIX: Gabungan agen untuk publikasi disaring mungkin gagal
    8.00.0818
    http://www.Microsoft.com/technet/security/bulletin/MS03-031.mspx
    8.00.0702
    328551 FIX: Concurrency tambahan untuk database Code
  2. Menerapkan jejak bendera -T1118.

    Catatan Jejak bendera -T1118 ini juga tersedia dan didukung di Microsoft SQL Server 2005 dan SQL Server 2008. Namun, jika Anda menjalankan SQL Server 2005 atau SQL Server 2008, Anda tidak harus menerapkan perbaikan terbaru apapun.
  3. Meningkatkan jumlah Code data file yang akan setidaknya sama dengan jumlah prosesor. Juga, membuat file dengan ukuran yang sama. Untuk informasi lebih lanjut, lihat bagian "Informasi Lebih Lanjut".
Catatan Langkah ini juga berlaku untuk Microsoft SQL Server 7.0. Satu-satunya pengecualian adalah bahwa tidak ada perbaikan terbaru untuk SQL Server 7.0; oleh karena itu, langkah 1 Apakah tidak berlaku.

Berkenaan dengan langkah 2, penggunaan jejak bendera - T1118 untuk Microsoft SQL Server 7.0, sebelum Anda menggunakan bendera jejak, lihat berikut artikel di dalam Basis Pengetahuan Microsoft:
813492 FIX: Membuat indeks gagal pada SQL Server 7.0 ketika jejak bendera 1118 diaktifkan

Informasi paket layanan

Untuk memecahkan masalah ini, Dapatkan paket layanan terbaru untuk Microsoft SQL Server 2000. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
290211 Cara mendapatkan paket layanan SQL Server 2000

Informasi hotfix

Perbaikan terbaru 8.00.0702

Versi bahasa Inggris dari hotfix ini memiliki atribut berkas (atau atribut berkas yang lebih baru) yang tercantum dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas tersebut dicantumkan dalam Coordinated Universal Time (UTC). Apabila Anda melihat informasi berkas, tanggal akan diubah ke waktu lokal. Untuk menemukan perbedaan waktu UTC dan waktu lokal, gunakan Zona waktu tab di Tanggal dan Waktu item dalam Panel kontrol.
   Date         Time   Version         Size       File name
   ----------------------------------------------------------------
   30-Aug-2002  21:08                    786,432  Distmdl.ldf
   30-Aug-2002  21:08                  2,359,296  Distmdl.mdf
   09-Oct-2002  00:54                        544  Drop_repl_hotfix.sql
   02-Jul-2002  15:35  2000.80.650.0     107,088  Impprov.dll      
   19-Jul-2002  16:56                    774,516  Instdist.sql
   08-Oct-2002  23:56                     12,615  Inst_repl_hotfix.sql
   20-Aug-2002  16:24  2000.80.679.0     111,172  Logread.exe      
   07-Apr-2002  02:08  2000.80.606.0      62,024  Odsole70.dll     
   03-Jan-2002  01:59                     18,185  Qfe356326.sql
   20-Aug-2002  16:47  2000.80.679.0     135,748  Qrdrsvc.exe      
   26-Aug-2002  22:49  2000.80.679.0     406,088  Rdistcom.dll     
   04-Oct-2001  01:36                    437,302  Replcom.sql
   20-Aug-2002  16:33  2000.80.679.0     152,136  Replmerg.exe     
   19-Nov-2001  20:36                    993,945  Replmerg.sql
   05-Nov-2002  23:48  2000.80.700.0     221,768  Replprov.dll     
   04-Oct-2001  01:36                    986,906  Replsys.sql
   04-Oct-2001  01:36                    881,228  Repltran.sql
   26-Aug-2002  22:49  2000.80.679.0     283,208  Rinitcom.dll     
   16-Sep-2002  22:31                    390,045  Securityhotfix.sql
   26-Aug-2002  22:49  2000.80.679.0      28,672  Sqlagent.dll     
   26-Aug-2002  18:39  2000.80.679.0     311,872  Sqlagent.exe     
   28-Aug-2002  16:32  2000.80.679.0      49,152  Sqlagent.rll
   26-Aug-2002  22:49  2000.80.679.0      53,824  Sqlcmdss.dll     
   28-Aug-2002  16:40  2000.80.679.0      12,288  Sqlcmdss.rll
   24-Oct-2002  17:37  2000.80.695.0     176,696  Sqlmap70.dll     
   11-Nov-2002  09:52  2000.80.702.0   7,471,185  Sqlservr.exe     
   11-Nov-2002  09:51                 12,633,088  Sqlservr.pdb
   01-Nov-2002  18:56  2000.80.698.0      45,644  Sqlvdi.dll       
   01-Nov-2002  18:00  2000.80.697.0      82,492  Ssnetlib.dll     
   07-Apr-2002  02:08  2000.80.606.0      70,208  Xplog70.dll      
   07-Apr-2002  02:08  2000.80.606.0      53,828  Xpqueue.dll      
   07-Apr-2002  02:08  2000.80.606.0     156,228  Xprepl.dll       
   12-Jul-2002  01:00  2000.80.658.0     279,104  Xpstar.dll       
   16-Sep-2002  23:12  2000.80.686.0      98,872  Xpweb70.dll   
				
Catatan
  • File dependensi, perbaikan terbaru yang terbaru atau fitur yang berisi file juga dapat berisi file-file tambahan.
  • Perbaikan terbaru 8.00.0702 adalah untuk komputer di mana Anda telah menerapkan SQL Server 2000 SP2. Jika Anda menginstal SQL Server 2000 SP3, Instal SQL Server 2000 SP3 rollup versi 8.00.0765.

STATUS

Microsoft telah mengkonfirmasi bahwa ini adalah masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk". Masalah ini diperbaiki pertama kali pada Microsoft SQL Server 2000 Paket Layanan 4.

INFORMASI LEBIH LANJUT

Bagaimana mengurangi perbaikan terbaru 8.00.0702 pertengkaran

Perbaikan terbaru 8.00.0702 memperkenalkan round-robin algoritma untuk Alokasi campuran halaman. Dengan memperbaiki, berkas mulai sekarang akan berbeda untuk masing-masing alokasi berturut-turut campuran halaman (jika lebih dari satu file ada). Ini menghindari pertikaian masalah oleh putus kereta yang melewati SGAMs dalam urutan yang sama setiap waktu dengan titik awal yang sama. Baru Alokasi algoritma untuk SGAM adalah murni round-robin, dan tidak menghormati mengisi sebanding untuk mempertahankan kecepatan. Microsoft menyarankan Anda membuat Code file data dengan ukuran yang sama.

Bagaimana pelaksana jejak bendera-T1118 mengurangi pertengkaran

Berikut adalah daftar cara penggunaan -T1118 mengurangi pertentangan:
  • -T1118 adalah pengaturan server-lebar.
  • Termasuk -T1118 jejak bendera di Startup parameter untuk SQL Server jadi yang jejak bendera tetap berlaku bahkan setelah SQL Server daur ulang.
  • -T1118 menghapus hampir semua alokasi satu halaman pada server.
  • Dengan menonaktifkan sebagian besar alokasi satu halaman, Anda mengurangi pertikaian di halaman SGAM.
  • Dengan -T1118 ON diaktifkan, hampir semua baru alokasi dilakukan dari GAM Halaman (misalnya, 2: 1: 2) yang mengalokasikan delapan (8) halaman (1 sejauh) pada suatu waktu untuk objek yang bertentangan dengan satu halaman dari rupa untuk pertama delapan (8) Halaman objek, tanpa jejak bendera.
  • IAM halaman masih menggunakan alokasi satu halaman dari Halaman SGAM, bahkan dengan -T1118 dihidupkan. Namun, ketika dikombinasikan dengan perbaikan terbaru 8.00.0702 dan meningkat Code file data, efek bersih adalah penurunan masih bertahan pada SGAM halaman. Untuk ruang masalah, lihat bagian "Kerugian" ini artikel.
Catatan Ketika bendera jejak 1118 diaktifkan untuk Anda misalnya SQL Server 2000, Anda tidak dapat berhasil memulihkan database SQL Server 7.0. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
837938Anda mungkin menerima pesan galat ketika Anda mencoba untuk memulihkan backup database SQL Server 7.0 pada contoh SQL Server 2000

Meningkatkan jumlah file data Code dengan ukuran yang sama

Jika ukuran dari file data Code 5 GB, dan ukuran file Log adalah 5 GB, rekomendasi adalah meningkatkan jenis satu sampai 10 (setiap 500 MB untuk menjaga sama ukuran), dan meninggalkan berkas log seperti. Memiliki file data yang berbeda pada disk terpisah akan lebih baik. Namun, hal ini tidak diperlukan dan mereka dapat hidup berdampingan di sama disk.

Jumlah optimal Code file data tergantung pada tingkat pertentangan dilihat dalam Code. Sebagai titik awal, Anda dapat mengkonfigurasi Code harus setidaknya sama dengan jumlah prosesor yang ditugaskan untuk SQL Server. Untuk lebih tinggi akhir sistem (misalnya, 16 atau 32 proc), mulai nomor bisa 10. Apabila pertikaian tidak berkurang, Anda harus meningkatkan jumlah data file lebih.

Catatan Dual-core prosesor dianggap sebagai dua prosesor.

Ukuran yang sama dari file data adalah kritis karena algoritma sebanding mengisi didasarkan pada ukuran file. Jika file data dibuat dengan ukuran tidak adil, mengisi sebanding algoritma mencoba untuk menggunakan file terbesar yang lebih untuk GAM alokasi bukan menyebarkan alokasi antara semua file, sehingga mengalahkan tujuan menciptakan beberapa file data.

Auto-grow dari Code file data dapat juga mengganggu mengisi sebanding algoritma. Oleh karena itu, mungkin ide yang baik untuk mematikan fitur auto-grow untuk Code file data. Jika pilihan auto-grow dimatikan, Anda harus membuat Pastikan untuk membuat file data sehingga mereka cukup besar untuk mencegah server dari mengalami kurangnya ruang disk dengan Code.

Bagaimana meningkatnya jumlah file data Code dengan ukuran yang sama mengurangi pertengkaran

Berikut adalah daftar bagaimana peningkatan jumlah Code data file dengan ukuran yang sama mengurangi pertentangan:
  • Dengan file data satu untuk Code, Anda hanya memiliki satu halaman GAM, dan satu SGAM halaman untuk setiap 4 GB ruang.
  • Meningkatkan jumlah data file dengan ukuran yang sama untukCode secara efektif menciptakan satu atau lebih GAM dan SGAM halaman untuk setiap data file.
  • Alokasi algoritma untuk GAM memberikan satu tingkat di waktu (delapan halaman bersebelahan) dari jumlah file dengan cara round robin sementara menghormati mengisi sebanding. Oleh karena itu, jika Anda memiliki 10 sama ukuran file, alokasi pertama adalah dari File1, kedua dari File2, ketiga dari File3, dan seterusnya.
  • Pertarungan resource halaman PFS berkurang karena delapan halaman yang ditandai sebagai penuh pada satu waktu karena GAM mengalokasikan Halaman.

Kerugian

Satu-satunya downside rekomendasi yang disebutkan sebelumnya adalah bahwa Anda dapat melihat ukuran database meningkatkan ketika kondisi berikut ini benar:
  • Objek baru dibuat dalam database pengguna.
  • Masing-masing objek baru menduduki kurang dari 64 KB penyimpanan.
Jika kondisi ini benar, Anda dapat mengalokasikan 64 KB (8 Halaman * 8 KB \u003d 64 KB) untuk objek yang hanya memerlukan 8 KB ruang, sehingga membuang-buang 56 KB penyimpanan. Namun, jika objek baru menggunakan lebih dari 64 KB (8 Halaman) dalam seumur hidup, tidak ada kerugian dengan bendera jejak. Oleh karena itu, dalam sebuah skenario kasus terburuk, SQL Server mungkin berakhir mengalokasikan tujuh (7) tambahan Halaman selama alokasi pertama hanya untuk objek baru yang tidak pernah tumbuh di luar satu (1) halaman.

REFERENSI

Untuk informasi lebih lanjut tentang GAM, SGAM, PFS dan IAM, lihat SQL Server 2000 buku Online topik berikut:
  • "Mengelola ruang Digunakan oleh objek"
  • "Mengelola sejauh alokasi dan ruang"
  • "Meja dan Indeks arsitektur"
  • "Tumpukan struktur"

Properti

ID Artikel: 328551 - Kajian Terakhir: 03 Oktober 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
Kata kunci: 
kbhotfixserver kbqfe kbsqlserv2000presp4fix kbfix kbbug kbmt KB328551 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:328551

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com