0 / 0
Go back to the English version of the documentation
Uložená procedura COLLECT_STATISTICS v produktu Watson Query
Last updated: 31. 3. 2023
Uložená procedura COLLECT_STATISTICS v produktu Watson Query

Shromažďuje statistiky pro virtualizované tabulky v produktu Watson Query. Optimalizátor Watson Query používá tyto statistiky k určení optimálních přístupových plánů pro efektivní zpracování dotazů. Schéma je DVSYS.

S více statistikami tabulky může optimalizátor provést lepší rozhodnutí, aby poskytl nejlepší možné přístupové plány. Když spustíte příkaz COLLECT_STATISTICS na tabulce, následné dotazy na tuto tabulku se obvykle spouštějí výrazně rychleji. Další informace naleznete v tématu Shromažďování statistiky v produktu Watson Query.

Důležité:
  • Použijte příkaz ANALYZE (místo procedury COLLECT_STATISTICS ), abyste shromáždili statistiky o virtualizovaných tabulkách nad úložištěm objektů. Další informace viz Příkaz ANALYZE. Chcete-li určit, které virtualizované tabulky se vytvářejí nad úložištěm objektů, můžete filtrovat virtualizované objekty podle typu. Vyberte Object Storage, Tabulkanebo Pohled v nabídce Filtrovat v data > Data virtualization > Virtualizovaná data.
  • Použijte proceduru SYSPROC.NNSTAT (místo procedury COLLECT_STATISTICS ), abyste shromáždili statistiky o virtualizovaných tabulkách přes nestrukturované soubory, které nejsou v paměti objektů. Další informace viz SYSPROC.NNSTAT uložená procedura.

Vstupní parametry

virtschema
Typ tohoto povinného parametru je VARCHAR (128). Uvádí název schématu virtualizované tabulky.
virtname
Typ tohoto povinného parametru je VARCHAR (128). Uvádí název virtualizované tabulky.
sloupce virtcolumns
Typ tohoto volitelného parametru je VARCHAR (32672). Určuje seznam názvů sloupců oddělených čárkami, pro které má být shromažďována statistika. Hodnota null určuje, že statistika má být shromažďována pro všechny sloupce. Prázdný řetězec určuje, že se nemají shromažďovat žádné statistiky sloupců. V tomto případě je shromažďována pouze kardinalita tabulky. Pokud název sloupce obsahuje speciální znaky, musí být název uzavřen do dvojitých uvozovek.
typ_kolekce
Typ tohoto povinného parametru je SMALLINT. Uvádí metodu shromažďování statistických údajů. Platné hodnoty jsou 1 (metodaremote-catalog ) a 2 (metodaremote-query ):
vzdálený katalog
Tento typ shromažďování statistických údajů je podporován pouze pro virtualizované tabulky ve vzdálených zdrojích dat, které podporují lokální metodu shromažďování statistických údajů. Statistiky, které jsou uloženy v tabulkách katalogu na vzdáleném zdroji dat, se načtou a pak uloží do katalogu statistiky Watson Query . Je důležité zajistit, aby byly ve vzdáleném zdroji dat k dispozici přesné statistiky. Typ remote-catalog kolekce statistik není podporován pro seskupené tabulky.
vzdálený-dotaz
Tento typ kolekce statistik používá dotazy SQL pro virtualizovanou tabulku k výpočtu statistiky. Tento typ může být náročný na prostředky a dokončení může trvat dlouho, pokud má virtualizovaná tabulka mnoho řádků nebo statistik, které jsou shromažďovány pro mnoho sloupců.
options
Typ tohoto volitelného parametru je VARCHAR (32672). Určuje čárkami oddělený seznam dodatečných parametrů. Tento parametr je vyhrazen pro budoucí použití.

Výstupní parametry

diagnostika
Typ tohoto parametru je VARCHAR (32672). Představuje diagnostický výstup, pokud dojde k selhání, a souhrn shromážděných statistik se zkrácenými výsledky.

Poznámky k použití

  • Chcete-li provádět významné změny dat ve vzdáleném zdroji dat, spusťte proceduru COLLECT_STATISTICS buď přímo, nebo prostřednictvím webového klienta Watson Query .
  • Pokud název sloupce obsahuje speciální znaky, musí být název uzavřen do dvojitých uvozovek.
  • Pokud vzdálený zdroj dat podporuje nástroje pro shromažďování lokálních statistik, ujistěte se, že jsou shromažďovány lokální statistiky a že se používá metoda remote-catalog pro shromažďování statistiky na virtualizované tabulce.
  • Pokud vzdálený zdroj dat nepodporuje nástroje pro shromažďování lokálních statistik, je jedinou dostupnou volbou dostupná metoda remote-query .
  • Pro sloupce typu LOB se shromažďuje pouze statistika NUMNULLS.

Příklady

Následující příklady používají virtualizované tabulky nad tabulkami, které jsou součástí databáze SAMPLE v produktu IBM® Db2®. Další informace viz Databáze SAMPLE.

  • Chcete-li shromáždit statistické údaje pro všechny sloupce v tabulce, použijte metodu remote-catalog .
    call dvsys.collect_statistics('SAMPLE', 'DEPARTMENT', null, 1, null, ?)
    Value of output parameters
    --------------------------
    Parameter Name  : DIAGS
    Parameter Value : Collected statistics for table "SAMPLE  "."DEPARTMENT":
    Table Cardinality = 14
    Column "LOCATION" [CHAR(16)]:  colcard=1, numnulls=14, highkey="", lowkey=""
    Column "ADMRDEPT" [CHAR(3)]:  colcard=3, numnulls=0, highkey="E01", lowkey="A00"
    Column "DEPTNAME" [VARCHAR(36)]:  colcard=14, numnulls=0, highkey="SPIFFY COMPUTER SERVICE DIV.", lowkey="BRANCH OFFICE F2"
    Column "MGRNO" [CHAR(6)]:  colcard=9, numnulls=6, highkey="000100", lowkey="000020"
    Column "DEPTNO" [CHAR(3)]:  colcard=14, numnulls=0, highkey="I22", lowkey="B01"
    
    Return Status = 0
  • Chcete-li shromáždit statistické údaje pro všechny sloupce v tabulce, použijte metodu remote-query .
    call dvsys.collect_statistics('SAMPLE', 'DEPARTMENT', null, 2, null, ?)
    Value of output parameters
    --------------------------
    Parameter Name  : DIAGS
    Parameter Value : Collected statistics for table "SAMPLE  "."DEPARTMENT":
    Table Cardinality = 14
    Column "LOCATION" [CHAR(16)]:  colcard=1, numnulls=14, highkey="", lowkey=""
    Column "ADMRDEPT" [CHAR(3)]:  colcard=3, numnulls=0, highkey="E01", lowkey="A00"
    Column "DEPTNAME" [VARCHAR(36)]:  colcard=14, numnulls=0, highkey="SUPPORT SERVICES", lowkey="ADMINISTRATION SYSTEMS"
    Column "MGRNO" [CHAR(6)]:  colcard=9, numnulls=6, highkey="000100", lowkey="000010"
    Column "DEPTNO" [CHAR(3)]:  colcard=14, numnulls=0, highkey="J22", lowkey="A00"
    
    Return Status = 0
  • Chcete-li shromáždit statistické údaje pro některé sloupce v tabulce, použijte metodu remote-query .
    call dvsys.collect_statistics('SAMPLE', 'DEPARTMENT', 'DEPTNO,DEPTNAME,LOCATION', 2, null, ?)
    Value of output parameters
    --------------------------
    Parameter Name  : DIAGS
    Parameter Value : Collected statistics for table "SAMPLE  "."DEPARTMENT":
    Table Cardinality = 14
    Column "LOCATION" [CHAR(16)]:  colcard=1, numnulls=14, highkey="", lowkey=""
    Column "DEPTNAME" [VARCHAR(36)]:  colcard=14, numnulls=0, highkey="SUPPORT SERVICES", lowkey="ADMINISTRATION SYSTEMS"
    Column "DEPTNO" [CHAR(3)]:  colcard=14, numnulls=0, highkey="J22", lowkey="A00"
    
    Return Status = 0
  • Chcete-li shromáždit pouze statistiku tabulky, použijte metodu remote-query .
    call dvsys.collect_statistics('SAMPLE', 'DEPARTMENT', '', 2, null, ?)
    Value of output parameters
    --------------------------
    Parameter Name  : DIAGS
    Parameter Value : Collected statistics for table "SAMPLE  "."DEPARTMENT":
    Table Cardinality = 14
    
    Return Status = 0
  • Metoda remote-query se používá k pokusu o shromažďování statistických údajů pro sloupec, který není definován v tabulce.
    call dvsys.collect_statistics('SAMPLE', 'DEPARTMENT', 'DEPTNO,FIRSTNME', 2, null, ?)
    Value of output parameters
    --------------------------
    Parameter Name  : DIAGS
    Parameter Value : ERROR: VALIDATE COLUMN FILTER LIST -- Invalid column "FIRSTNME" in virtColumns
    
    Return Status = 0
  • Metoda remote-catalog se používá ke shromažďování statistických údajů, pokud vzdálený katalog neobsahuje žádné statistiky pro lokální tabulku.
    call dvsys.collect_statistics('SAMPLE', 'DEPARTMENT', null, 1, null, ?)
    Value of output parameters
    --------------------------
    Parameter Name  : DIAGS
    Parameter Value : WARNING: No statistics found in remote catalog for table "SAMPLE  "."DEPARTMENT"
    
    Return Status = 0
  • Metoda remote-catalog se používá ke shromažďování statistických údajů, jsou-li zadány sloupce se speciálními znaky.
    call dvsys.collect_statistics('SAMPLE', 'SpecialChars', '"Col,1","Col""2"', 2, null, ?)
    Value of output parameters
    --------------------------
    Parameter Name  : DIAGS
    Parameter Value : Collected statistics for table "SAMPLE  "."SpecialChars":
    Table Cardinality = 4
    Column "Col,1" [INTEGER]:  colcard=3, numnulls=0, highkey="3", lowkey="1"
    Column "Col"2" [INTEGER]:  colcard=3, numnulls=1, highkey="2", lowkey="1"
    
    Return Status = 0
Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more