Portál AbcLinuxu, 12. května 2025 16:31

Dotaz: Co znamená přepočítání statistik?

2.12.2008 13:31 Fleky
Co znamená přepočítání statistik?
Přečteno: 2125×
Odpovědět | Admin
Dobrý den,

s kolegou jsme nedávno řešili problém v Oracle 10g a to následující:

nedavno jsme testovali soap dotazy do Oraclí databaze... u jedne z DB soap dotaz nedosel -> vypsal TIMEOUT. Zkouseli jsme primy dotaz do DB pres SQLdevelopra a dotaz odpovedel po nejakych 10minut pidili jsme nad tim proc tomu tak je...a nakonec jsme zjistili nasledujici (co nam rekli databazisti, kteri se staraji o DB): Museli jsme prepocitat statistiky.

Tato akce pomohla. Na netu jsem se dozvedel, ze proste nad DB se musi delat nejaka optimalizace a jedna z nich je prave to prepocitavani statistik. To je ale vše, co jsem zjistil

Moje otázka je, co to přesně znamená, jak se to spouští. Po jaké době se to má spouštět, aby se příště tomu předešlo. jak vypadá případná struktura takového dotazu, pokud to dotaz je.

Díky za info, do administrace Oraclu moc nevidím.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.12.2008 13:49 albert
Rozbalit Rozbalit vše Re: Co znamená přepočítání statistik?
Odpovědět | | Sbalit | Link | Blokovat | Admin

A co zkusit google, prvni odkaz pro "oracle statistics" je velmi relevantni - http://www.oracle.com/technology/pub/articles/lewis_cbo.html. Nebo snad dokonce dokumentaci na http://www.oracle.com/pls/db102/homepage. Pocitani statistik je naprosty zaklad, pokud pouzivate Oracle databazi, tak snad k ni musite mit nekoho, kdo vi co to je.

2.12.2008 14:11 Fleky
Rozbalit Rozbalit vše Re: Co znamená přepočítání statistik?

Odkazy umí házet každý. Myslel jsem, že mi tady někdo poradí. My přístup k administraci nemáme. A DB Administrátoři nám dali jen takovéto heslovité vyjádření.

Chci jen vědět jakým způsobem se to přepočítávní zapíná. Jestli se musí provést nějaký sql příkaz nebo někde něco zapnout. K čemu slouží to vím.

Díky za odpověď

 

2.12.2008 14:49 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: Co znamená přepočítání statistik?
hele, zpomal. Albert ti tu hodil naprosto relevantni odkazy, kde se dočteš co a jak.

Ale protože jsem dobrák od kosti, tak ještě přidám pár termínů: CBO (nutno nastudovat), ANALYZE (TABLE|INDEX|...), DBMS_STATS, DBMS_UTILITY.analyze... atd.

Jak se to zapíná? Z ruky, z DB Jobu atd. Musíš mít práva.

Obecně ale dávám doporučení: pokud nevíš co děláš (a to si podle dotazu myslím), tak to na produkční DB nedělej, protože můžeš úplně dosrat stávající selekty, a to zejména když si budeš hrát se různou úrovní výpočtu statistik. Nebo když si budeš simulovat plnou DB na úplně prázdné atd.

Tím se zase dostáváme na začátek, a to ke čtení dokumentace (ano, těch namachrovanejch odkazů).
Kuolema Kaikille (Paitsi Meille).
2.12.2008 15:42 Fleky
Rozbalit Rozbalit vše Re: Co znamená přepočítání statistik?

My k administraci DB přístup nemáme. Pouze do ní pomocí naší aplikace data archivujeme a zobrazujeme, vyhledáváme ve web browseru.

Nedávno měl právě jeden z našich zákazníků problém s tím že soap request vypsal timeout. Další věc, co nám byla divná, že se to dělo pouze

ve dvou z několika DB. Danej problém nakonec vyřešili DB administrátoři.

Věc je uzavřená ano.

Pátral jsem na netu po tom, co vlastně udělali, že to vyřešilo danou situaci. A chtěl jsem spíš od Vás vědět jestli se to dá zapnout automaticky - přepočítání statistik), aby příště nedocházelo k dalším problémům.

Určitě napíšte tak se zeptejte databázistů. Jenže s nima kominukije zákazník :) My jsme jen třetí strana.

 

2.12.2008 15:03 albert
Rozbalit Rozbalit vše Re: Co znamená přepočítání statistik?

No a odpovedi na tyto otazky snadno najdes prave v dokumentaci. Jaky by melo smysl, aby to sem nekdo z te dokumentace opisoval?

Pokud staci automaticke udrzovani statistik rekneme jedenkrat denne, pak pozadej administratory, at to nastavi (sam to stejne nastavit nemuzes), a nemusis nic resit.

 

2.12.2008 15:13 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Co znamená přepočítání statistik?
Administrátori vám dali také vyjadrenie, lebo problém bol v niečom, čo nemáte vy riešiť, nemáte na to technické prostriedky (ako si sa vyjadril "my přístup k administraci nemáme"), ani pravdepodobne nemáte na to vedomosti. Mali ste s databázou problém, nahlásili ste to administrátorom, oni problém odhalili a vyriešili. Game over. Na to, že administrátorov Oraclu v budúcnosti prechytráčiš ak sa ich spytaš, "či nie je treba pregenorovať štatistiky", zabudni. Oracle, to je vlastný vesmír s vlastnými fyzikálnymi zákonmi.
default avatar 2.12.2008 15:44 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: Co znamená přepočítání statistik?

Chci jen vědět jakým způsobem se to přepočítávní zapíná.

Třeba takhle:

BEGIN
    DBMS_OUTPUT.PUT_LINE('Gathering statistics for current schema');
    
    DBMS_STATS.SET_PARAM(pname => 'CASCADE',     pval  => 'TRUE');
    DBMS_STATS.SET_PARAM(pname => 'GRANULARITY', pval  => 'ALL');
    
    DBMS_STATS.GATHER_SCHEMA_STATS(
            ownname => '&TARGET_SCHEMA',
            options => 'GATHER',
            force   => TRUE);
    
    DBMS_OUTPUT.PUT_LINE('DONE');
END;
/

A musíš na to bejt velký kápo (SYSTEM).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.