2015-05-08 10 views
10

Per una colonna di tipo di dati CHAR, quando è stato eseguito gather_table_stats, il valore endpoint_actual_value aveva i valori char come 'JUMBO BOX', 'JUMBO CAR', ecc. Nella tabella user_tab_histograms.Istogrammi falsi Oracle

Sto cercando di scrivere (finti) statistiche come parte di un esperimento e sto usando prepare_column_values e set_column_stats per creare i dettagli istogramma, ma io non sono in grado di specificare il endpoint_actual_value.

EDIT 1: Versione: Oracle 11g Express Edition

EDIT 2: posso aggiornare le statistiche seguente modo:

DECLARE 
m_distcnt NUMBER := 3;  -- num_distinct 
m_density NUMBER := 1/1000; -- density 
m_nullcnt NUMBER := 0;  -- num_nulls 
m_avgclen NUMBER := 10;  -- avg_col_len 
srec  dbms_stats.statrec; 
c_array dbms_stats.chararray; 
BEGIN 
    srec.epc := 3; 
    c_array := dbms_stats.chararray('HELLO', 'WORLD', 'FIRST'); 
    srec.bkvals := dbms_stats.numarray(20, 180, 800); 

    dbms_stats.prepare_column_values(srec, c_array); 

    dbms_stats.set_column_stats(USER, 'FBHIST_DEMO', 'TESTCOL', 
    distcnt => m_distcnt, 
    density => m_density, 
    nullcnt => m_nullcnt, 
    srec => srec, 
    avgclen => m_avgclen); 
END; 
/

Qualche suggerimento? Grazie!

+0

@JonHeller Aggiornato. – user2761431

+0

Si prega di fornire esattamente come si invoca 'prepare_column_values' e' set_column_stats'. –

+0

@ Kombajnzbożowy Ho aggiornato i dettagli richiesti. – user2761431

risposta

3

magari creare le proprie tabelle di fake_histogram e quindi inserire i valori falsi - quindi UNION questi a quelli appropriati. quindi non devi cercare di ingannare il sistema

+0

Vorrei anche creare una VISTA e regolare i valori durante una selezione. – Armand

+0

@Randy Vorrei solo falsificare gli istogrammi nelle sole tabelle Oracle, non creare una tabella dell'istogramma falso. – user2761431