Hledám standardní kus kódu, který bych mohl vložit do procedury, která dokáže procházet všechny parametry pro proc a načíst aktuální hodnoty předané--
Všechny hodnoty předané pro sp můžete získat pomocí níže uvedeného dotazu
Příklad:
Níže mám uložený proces, který mi poskytuje podrobnosti o prodeji (pouze pro demo)
alter proc dbo.getsales
(
@salesid int
)
as
begin
select
* from sales where [email protected]
end
Zavolal jsem své sp jako níže..
exec dbo.getsales 4
Nyní, pokud chci předat hodnotu, mohu použít níže uvedený dotaz
select top 10* from sys.dm_exec_cached_plans cp
cross apply
sys.dm_exec_text_query_plan(cp.plan_handle,default,default)
where objtype='proc'
který mi níže ukázal jako hodnotu času kompilace
s tím, co bylo řečeno, existuje mnoho věcí, které je třeba zvážit.. k získání této hodnoty můžeme použít metody xml
co se stane, když znovu spustím stejný uložený proces pro hodnotu 2 ..
<ColumnReference Column="@salesid" ParameterCompiledValue="(4)" ParameterRuntimeValue="(2)" />
Jedním z důležitých úlovků je, že výše uvedené hodnoty se zobrazí, když jsem vybral plán provádění, který se má zobrazit z ssms.
Ale jaká bude hodnota v mezipaměti, podívejme se na to znovu pomocí dotazu na mezipaměť nad plánem
<ColumnReference Column="@salesid" ParameterCompiledValue="(4)"/>
Stále zobrazuje zkompilovanou hodnotu plus sloupec usecounts jako 5--`, což znamená, že tento plán byl použit 5krát a parametr, který byl předán při počáteční kompilaci plánu, je 4. což také znamená, že hodnoty doby běhu nejsou uloženy v mezipaměti podrobnosti plánů..
Stručně řečeno, můžete získat hodnoty za běhu předané do uloženého procesu
- 1.Hodnoty, které jsou předány při kompilaci příkazu(
Můžete začít shromažďovat tyto informace v průběhu času a zaznamenávat je proti uloženému procesu, myslím, že časem s restartováním serveru, plánováním rekompilací můžete získat novou sadu hodnot parametrů) - 2. Dostat se do kontaktu s týmem DEV je také dobrý způsob, protože vám může poskytnout úplný seznam parametrů, které lze předat, pokud je toto cvičení těžkopádné