Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa yang menyebabkan parameter mengendus satu komputer dan bukan yang lain?

Dengan asumsi Anda bermaksud bahwa kedua mesin terhubung ke server yang sama, maka mungkin ada perbedaan pengaturan yang menyebabkan rencana yang tidak sesuai tidak dibagikan di antara kedua koneksi.

Agar koneksi dapat menggunakan kembali paket yang di-cache sebelumnya, beberapa pengaturan (kunci cache paket) harus sama termasuk ANSI_NULLS , ARITHABORT , Language , DATEFIRST dan skema default (jika kueri bergantung pada resolusi nama implisit apa pun).

Anda dapat melihatnya dengan melihat sys.dm_exec_plan_attributes (yang di mana is_cache_key=1 harus sama antar koneksi).

Daftar lengkap atribut di mana is_cache_key=1 adalah

dbid_execute
required_cursor_options
compat_level
parent_plan_handle
date_format
language_id
status
merge_action_type
is_replication_specific
objectid
acceptable_cursor_options
date_first
set_options
user_id
dbid
optional_spid
optional_clr_trigger_objid
optional_clr_trigger_dbid

set_options dan cursor_options adalah bendera bit yang terdiri dari berbagai opsi sebagaimana didokumentasikan di sini . Dalam eksperimen saya user_id sebenarnya mengacu pada schema_id(default_schema_name) daripada principal_id .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alat Data SQL Server Visual Studio 2015 tidak ada opsi Tambahkan Tabel

  2. Kolom tidak valid dalam daftar pilih karena tidak terdapat dalam fungsi agregat atau klausa GROUP BY

  3. Menambahkan beberapa variabel berparameter ke database di c#

  4. TAHUN() Contoh di SQL Server (T-SQL)

  5. Apa gunanya GO di SQL Server Management Studio &Transact SQL?