Files
oracle/tpt/experiments/histogram_linear_decay_of_selectivity.sql
2026-03-12 21:23:47 +01:00

68 lines
2.4 KiB
SQL

-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
DROP TABLE t;
CREATE TABLE t AS SELECT * FROM dba_objects;
SELECT
MIN(created)
, MAX(created)
, ROUND(MAX(created)-MIN(created)) range_days
, COUNT(*) num_rows
, COUNT(*) / ROUND(MAX(created)-MIN(created)) rows_per_day
, SUM(NVL2(created,0,1)) nulls
FROM
t
/
EXEC DBMS_STATS.GATHER_TABLE_STATS(user, 'T', method_opt=>'FOR TABLE', no_invalidate=>FALSE);
-- SELECT * FROM t WHERE created > SYSDATE - 1;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
--
-- SELECT * FROM t WHERE created > SYSDATE;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
--
-- SELECT * FROM t WHERE created > SYSDATE + 1;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
--
-- SELECT * FROM t WHERE created > SYSDATE + 10;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
--
-- SELECT * FROM t WHERE created > SYSDATE + 100;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
-- SELECT * FROM t WHERE created > DATE'2012-09-01';
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
SELECT * FROM t WHERE created < DATE'2010-10-01';
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
EXEC DBMS_STATS.GATHER_TABLE_STATS(user, 'T', method_opt=>'FOR TABLE FOR ALL COLUMNS SIZE 254', no_invalidate=>FALSE);
-- SELECT * FROM t WHERE created > SYSDATE - 1;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
--
-- SELECT * FROM t WHERE created > SYSDATE;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
--
-- SELECT * FROM t WHERE created > SYSDATE + 1;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
--
-- SELECT * FROM t WHERE created > SYSDATE + 10;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
--
-- SELECT * FROM t WHERE created > SYSDATE + 100;
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
-- SELECT * FROM t WHERE created > DATE'2012-09-01';
-- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));
SELECT * FROM t WHERE created < DATE'2010-10-01';
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'+PEEKED_BINDS'));