INF: pertanyaan yang sering diajukan - SQL Server 2000 - tabel atak variabel

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 305977 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Ringkasan

Artikel ini menjawab beberapa pertanyaan yang sering diajukan (FAQ) yang berkaitan dengan variabel tabel atak yang diperkenalkan di SQL Server 2000.

Untuk membaca deskripsi SQL Server buku Online Daftar Tabel variabel, kunjungi Web site Microsoft berikut:
.aspx http://msdn2.Microsoft.com/en-US/Library/aa260638 (SQL.80)

Informasi lebih lanjut

P1: Mengapa tabel atak variabel diperkenalkan ketika Daftar Tabel sementara sudah tersedia?

A1: Daftar Tabel variabel memiliki beberapa keunggulan dibandingkan dengan sementara Tabel:
  • Seperti disebutkan dalam SQL Server buku Online "Tabel" Artikel, tabel atak variabel, seperti variabel lokal, memiliki cakupan didefinisikan dengan baik di ujung yang mereka secara otomatis dihapus.
  • Daftar Tabel variabel mengakibatkan lebih sedikit recompilations dari disimpan prosedur dibandingkan dengan Daftar Tabel sementara.
  • Transaksi yang melibatkan tabel atak variabel terakhir hanya untuk Durasi update pada Daftar Tabel variabel. Oleh karena itu, variabel tabel atak memerlukan kurang mengunci dan penebangan sumber daya. Karena Daftar Tabel variabel telah membatasi cakupan dan bukan merupakan bagian dari database gigih, rollbacks transaksi tidak mempengaruhi mereka.
P2: Apa artinya dengan mengatakan bahwa Daftar Tabel variabel mengakibatkan lebih sedikit recompilations prosedur tersimpan daripada ketika Daftar Tabel sementara yang digunakan?

A2: Artikel berikut membahas beberapa alasan bila disimpan prosedur yang recompiled:

243586 Pemecahan masalah penampilan disimpan prosedur
"Recompilations karena Daftar Tabel sementara tertentu Operasi"bagian juga daftar beberapa persyaratan untuk menghindari seperti penampilan karena Daftar Tabel sementara. Pembatasan ini tidak sahih untuk variabel tabel atak.

Daftar Tabel variabel benar-benar terisolasi untuk kumpulan yang menciptakan mereka sehingga tidak ada Anda-resolusi ' yang terjadi ketika membuat atau mengubah pernyataan terjadi, yang mungkin terjadi dengan tabel atak sementara. Daftar Tabel sementara perlu Anda-resolusi ini ' sehingga Daftar Tabel dapat dirujuk dari bersarang disimpan prosedur. Daftar Tabel variabel menghindari hal ini benar-benar sehingga dapat menggunakan prosedur tersimpan rencana yang sudah dikompilasi, sehingga menghemat sumber daya untuk proses yang disimpan prosedur.

P3: Apa adalah beberapa kelemahan dari tabel atak variabel?

A3: Ini adalah beberapa kekurangan dibandingkan dengan Daftar Tabel sementara:
  • Indeks berkerumun bebas tidak dapat dibuat di tabel atak variabel, lain dari sistem indeks yang dibuat untuk dasar atau unik kendala. Yang dapat mempengaruhi performa query bila dibandingkan dengan Daftar Tabel sementara dengan indeks non-berkumpul.
  • Daftar Tabel variabel tidak menjaga statistik seperti sementara Daftar Tabel dapat. Statistik tidak dapat dibuat di tabel atak variabel melalui otomatis penciptaan atau dengan menggunakan statistik membuat pernyataan. Oleh karena itu, untuk kompleks pertanyaan pada Daftar Tabel besar, kurangnya statistik yang dapat mencegah optimizer untuk menentukan rencana terbaik untuk permintaan, sehingga mempengaruhi kinerja yang query.
  • Definisi tabel atak tidak dapat diubah setelah awal MENYATAKAN pernyataan.
  • Daftar Tabel variabel tidak dapat digunakan di EXEC menyisipkan atau pilih Ke dalam pernyataan.
  • Batas CEK, nilai-nilai DEFAULT, dan bidang terhitung dalam deklarasi tipe tabel atak tidak dapat panggilan fungsi-fungsi yang ditetapkan pengguna.
  • Anda tidak dapat menggunakan EXEC pernyataan atau sp_executesql disimpan prosedur untuk menjalankan query SQL Server dinamis yang merujuk Daftar Tabel variabel, jika variabel tabel atak diciptakan di luar pernyataan EXEC atau sp_executesql disimpan prosedur. Karena Daftar Tabel variabel dapat dirujuk di lingkup lokal mereka hanya, pernyataan EXEC dan sp_executesql disimpan prosedur yang akan di luar lingkup Daftar Tabel variabel. Namun, Anda dapat menciptakan variabel Daftar Tabel dan melakukan semua pengolahan di dalam EXEC pernyataan atau sp_executesql disimpan prosedur karena kemudian variabel lokal tabel atak ruang lingkup dalam pernyataan EXEC atau sp_executesql disimpan prosedur.
P4: Adalah variabel Daftar Tabel memori-hanya struktur yang dijamin kinerja yang lebih baik dibandingkan dengan Daftar Tabel sementara atau permanen, karena mereka dipertahankan dalam database yang berada di disk fisik?

A4: Variabel tabel atak bukanlah sebuah memori-hanya struktur. Karena Daftar Tabel variabel mungkin memegang lebih banyak data daripada yang dapat disimpan dalam kehabisan memori, harus ada tempat disk untuk menyimpan data. Variabel tabel atak diciptakan di Code database mirip dengan Daftar Tabel sementara. Jika kehabisan memori tersedia, keduanya tabel atak variabel dan Daftar Tabel sementara diciptakan dan diproses sementara di kehabisan memori (data cache).

P5: Apakah saya harus menggunakan variabel tabel atak bukan Daftar Tabel sementara?

A5: Jawabannya tergantung pada faktor-faktor ini tiga:
  • Jumlah baris yang dimasukkan untuk Daftar Tabel.
  • Jumlah recompilations query disimpan dari.
  • Jenis pertanyaan dan mereka ketergantungan pada indeks dan Statistik untuk kinerja.
Dalam beberapa situasi, melanggar prosedur tersimpan sementara Daftar Tabel ke kecil disimpan prosedur sehingga penampilan yang berlangsung pada unit yang lebih kecil sangat membantu.

Secara umum, Anda menggunakan Daftar Tabel variabel bila memungkinkan kecuali jika ada volume yang signifikan data dan ada adalah penggunaan berulang dari Daftar Tabel. Dalam hal ini, Anda dapat membuat indeks pada Daftar Tabel sementara untuk meningkatkan performa query. Namun, setiap skenario mungkin berbeda. Microsoft menganjurkan bahwa Anda menguji jika Daftar Tabel variabel lain membantu daripada Daftar Tabel sementara untuk query tertentu atau disimpan prosedur.

Properti

ID Artikel: 305977 - Kajian Terakhir: 30 Mei 2013 - Revisi: 3.0
Berlaku bagi:
  • Microsoft SQL Server 2000 Standard Edition
Kata kunci: 
kbinfo kbmt KB305977 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 305977

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