Pokročilé hledání             

HELIOS iNuvio      FAQ     Uživatelský panel    

Registrovat     Přihlásit se

    Obsah fóra> Znalostní databáze> Rychlost Helios Orange
    Verze pro tisk

Rychlost Helios Orange - Aktualizace statistik

Informace a různá nastavení směřující ke zrychlení odezvy systému. Rozděleno do oblastí HW/SQL/Helios.

Moderátor: orange_moderator

Odeslat odpověď
Příspěvků: 2 • Stránka 1 z 1
  • Odpovědět s citací

Rychlost Helios Orange - Aktualizace statistik

Příspěvekod jiri.dolezal v 16.10.2009 15:50

Aktualizace statistik (Helios Orange > Možnosti - Konfigurace... > Systémové konstanty > {pravá myš} > aktualizace statistik) je akce, při které se pro každou tabulku, view s clusterovaným indexem nebo hromadu (HEAP) (@id) spouští tento T-SQL příkaz:

Kód: Vybrat vše
DECLARE @e NVARCHAR(4000),@id INT
DECLARE c CURSOR LOCAL FAST_FORWARD FOR SELECT id FROM dbo.sysindexes WHERE indid<2 AND OBJECTPROPERTY(id,'TableIsFake')=0 AND OBJECTPROPERTY(id,'IsSystemTable')=0 ORDER BY rows DESC
OPEN c
WHILE 1=1 BEGIN
FETCH NEXT FROM c INTO @id
IF @@fetch_status<>0 BREAK
SET @e='UPDATE STATISTICS '+QUOTENAME(USER_NAME(OBJECTPROPERTY(@id,'OwnerId')))+'.'+QUOTENAME(OBJECT_NAME(@id))+' WITH FULLSCAN'
EXEC(@e)
END
DEALLOCATE c


Statistiky používá MS SQL Server ve svém vnitřním mechanismu (Query Optimizer) k vyhodnocení nejefektivnější cesty pro získání nebo aktualizaci dat.

Tato akce tedy může být jednou z cest, jak zlepšít odezvu SQL Serveru, potažmo jeho rychlost v případě aktuálních výkonnostních problémů (např. způsobeném hromadným importem / výmazem dat).

Má-li databáze nastavenu vlastnost Auto Create Statistics a Auto Update Statistcs není důvod ji spouštět pravidelně.

Je-li součástí údržbových operací pravidelná re-indexace (REBUILD) indexů - je aktualizace statistik indexů jeho součástí, tzn. není důvod ji duplicitně znovu spoustět.

Výborné informace ke statistikám formou otázka - odpověď lze nalézt zde.
Naposledy upravil jiri.dolezal dne 18.04.2012 16:30, celkově upraveno 2
jiri.dolezal
 
Nahoru

  • Odpovědět s citací

Rychlost Helios Orange - Smazání statistik

Příspěvekod jan.havranek v 30.10.2009 10:36

Pouhá aktualizace statistik nemusí mít za všech okolností stejný efekt. Pokud se zdá že samotná aktualizace příliš nepomohla, je možné všechny statistiky smazat a nechat je postupně (za chodu) nebo ad hoc (aktualizací) znovu vytvořit.
Statistiky ovlivňují Execution plan uložených procedur a tím i rychlost odezvy.

Následujícími kroky se statistiky smažou a poté se vytvoří nové podle aktuálního stavu databáze a nebudou nadále vycházet z původních nacashovaných hodnot.

1/ tento SELECT zobrazí všechny aktuální statistiky (včetně systémových)
Kód: Vybrat vše
/* zobraz statistiky */
SELECT name,id
FROM sysindexes
WHERE INDEXPROPERTY(id,name,'IsStatistics')=1

2/ tento skript smaže statistiky pro objekty Helios Orange
Kód: Vybrat vše
/* smaž statistiky */
DECLARE @name NVARCHAR(4000),@p INT
DECLARE c CURSOR LOCAL FOR
   SELECT name,id
   FROM sysindexes
   WHERE INDEXPROPERTY(id,name,'IsAutoStatistics')=1 AND OBJECTPROPERTY(id,'IsMSShipped')<>1
OPEN c
WHILE 1=1 BEGIN
  FETCH NEXT FROM c INTO @name,@p
  IF @@FETCH_STATUS<>0 BREAK
  SET @name=N'DROP STATISTICS '+QUOTENAME(USER_NAME(OBJECTPROPERTY(@p,'OwnerId')))+'.'+QUOTENAME(OBJECT_NAME(@p))+'.'+QUOTENAME(@name)
  EXEC(@name)
print @name
END
DEALLOCATE c
jan.havranek
 
Příspěvky: 217
Registrován: 03.10.2006 08:51
Firma: Asseco Solutions, a.s.
Nahoru


Odeslat odpověď
Příspěvků: 2 • Stránka 1 z 1

Zpět na Rychlost Helios Orange

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

         
  • Tým • Smazat všechny cookies z fóra • Všechny časy jsou v UTC + 1 hodina
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group, Český překlad – phpBB.cz

© copyright 2024 Asseco Solutions, a.s.