ホームページ > データベース > mysql チュートリアル > 11g下使用参数skewonly收集直方图的缺陷已修复

11g下使用参数skewonly收集直方图的缺陷已修复

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-07 16:12:50
オリジナル
1297 人が閲覧しました

之前在10g下验证过使用参数skewonly收集直方图的缺陷,11g下已经修复。直方图在大数据量上显的越来越重要了,如果不准,执行计划很可能不准。 SQL select * from v$version;BANNER------------------------------------------------------------------------

之前在10g下验证过使用参数skewonly收集直方图的缺陷,11g下已经修复。直方图在大数据量上显的越来越重要了,如果不准,执行计划很可能不准。

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> drop table test purge;
SQL> create table test
(
id varchar2(60)【本文来自鸿网互联 (http://www.68idc.cn)】 primary key,
name varchar2(100)
);
SQL> insert into test
select rpad('a', 40, 'a') || to_char(rownum), object_name
from dba_objects;
已创建69617行。
SQL> commit;

SQL> select count(1),count(distinct id),count(distinct name) from test;
COUNT(1) COUNT(DISTINCTID) COUNT(DISTINCTNAME)
---------- ----------------- -------------------
69617 69617 41622
SQL> exec dbms_stats.gather_table_stats(user,'test',METHOD_OPT=>'for all columns size skewonly');
SQL> select COLUMN_NAME, NUM_DISTINCT from user_tab_columns where TABLE_NAME = 'TEST';
COLUMN_NAME NUM_DISTINCT
------------------------------ ------------
ID 69617
NAME 40904

SQL> exec dbms_stats.gather_table_stats(user,'TEST',METHOD_OPT=>'for all columns size auto');
SQL> select COLUMN_NAME, NUM_DISTINCT from user_tab_columns where TABLE_NAME = 'TEST';
COLUMN_NAME NUM_DISTINCT
------------------------------ ------------
ID 69617
NAME 40904
ログイン後にコピー

可以看到两次收集的都是准的。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート