Für eine CHAR-Datentyp Spalte, wenn gather_table_stats ausgeführt wurde, hatte die endpoint_actual_value
die char Werte wie "JUMBO BOX", "JUMBO CAR", etc. in user_tab_histograms
Tabelle.Oracle gefälschte Histogramme
Ich versuche, (fake) Statistiken als Teil eines Experiments zu schreiben, und ich bin mit prepare_column_values
und set_column_stats
die Histogramm Details zu erstellen, aber ich bin nicht in der Lage die endpoint_actual_value
angeben.
EDIT 1: Version: Oracle 11g Express Edition
EDIT 2: Ich habe die Statistik die folgende Art und Weise aktualisieren:
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;
/
Irgendwelche Vorschläge? Vielen Dank!
@JonHeller Aktualisiert. – user2761431
Bitte geben Sie an, wie genau Sie 'prepare_column_values' und' set_column_stats' aufrufen. –
@ Kombajnzbożowy Ich habe die Details aktualisiert, die Sie gefragt haben. – user2761431