Hvis du antager, at begge maskiner oprettede forbindelse til den samme server, var der sandsynligvis en indstillingsforskel, der gjorde, at den upassende plan ikke blev delt mellem de to forbindelser.
For at en forbindelse kan genbruge et tidligere cachelagret plan, skal en hel del indstillinger (plancache-nøgler) være de samme inklusive ANSI_NULLS
, ARITHABORT
, Language
, DATEFIRST
og standardskema (hvis forespørgslen er afhængig af en implicit navneopløsning).
Du kan se disse ved at se på sys.dm_exec_plan_attributes
(dem hvor is_cache_key=1
skal være ens mellem forbindelser).
En komplet liste over de attributter, hvor is_cache_key=1
er
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
og cursor_options
er bitflag, der omfatter en række muligheder som dokumenteret her
. I mit forsøg user_id
refererer faktisk til schema_id(default_schema_name)
i stedet for principal_id
.