2015-05-08 24 views
10

Đối với cột CHAR datatype, khi gather_table_stats được chạy, endpoint_actual_value có các giá trị char như 'JUMBO BOX', 'JUMBO CAR', v.v. trong bảng user_tab_histograms.Biểu đồ giả mạo Oracle

Tôi đang cố viết các thống kê (giả) như một phần của thử nghiệm và tôi đang sử dụng prepare_column_valuesset_column_stats để tạo chi tiết biểu đồ, nhưng tôi không thể chỉ định endpoint_actual_value.

EDIT 1: Phiên bản: Oracle 11g Express Edition

EDIT 2: Tôi cập nhật số liệu thống kê theo cách sau:

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; 
/

Bất kỳ lời đề nghị? Cảm ơn!

+0

@JonHeller Cập nhật. – user2761431

+0

Vui lòng cung cấp chính xác cách bạn đang gọi 'prepar_column_values' và' set_column_stats'. –

+0

@ Kombajnzbożowy Tôi đã cập nhật các chi tiết bạn yêu cầu. – user2761431

Trả lời

3

có thể tạo bảng fake_histogram của riêng bạn và sau đó điền vào các giá trị giả mạo của bạn - sau đó UNION những giá trị này cho phù hợp. sau đó bạn không phải cố gắng đánh lừa hệ thống

+0

Tôi cũng sẽ tạo VIEW và điều chỉnh các giá trị trong khi chọn. – Armand

+0

@Randy Tôi muốn giả các biểu đồ trong bảng Oracle chỉ, không tạo ra một bảng biểu đồ giả. – user2761431

Các vấn đề liên quan