ITPub博客

首页 > Linux操作系统 > Linux操作系统 > dbms_stats包不收集long字段长度信息

dbms_stats包不收集long字段长度信息

原创 Linux操作系统 作者:lsq_008 时间:2010-06-06 04:14:38 0 删除 编辑

测试如下:

SQL> create table test(a char(1),b long) tablespace users;

Table created.

SQL> insert into test values('1','aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');

1 row created.

SQL> commit;

Commit complete.

SQL> exec dbms_stats.gather_table_stats(user,'test',cascade=>true);

PL/SQL procedure successfully completed.

SQL> select table_name,num_rows,avg_row_len from user_tables where table_name='TEST';

TABLE_NAME                       NUM_ROWS AVG_ROW_LEN
------------------------------ ---------- -----------
TEST                                    1           2

SQL> drop table test;

Table dropped.

SQL>  create table test(a char(1),b long) tablespace users;

Table created.

SQL>  insert into test values('1','aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');

1 row created.

SQL> commit;

Commit complete.

SQL> analyze table test compute statistics;

Table analyzed.

SQL> select table_name,num_rows,avg_row_len from user_tables where table_name='TEST';

TABLE_NAME                       NUM_ROWS AVG_ROW_LEN
------------------------------ ---------- -----------
TEST                                    1          89

显然,analyze命令收集long字段的长度,而dbms_stats没有收集,而对于clob字段,dbms_stats包却又收集了其长度信息:

SQL>  create table test(a char(1),b clob) tablespace users;

Table created.

SQL> insert into test values('1','aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');

1 row created.

SQL> commit;

Commit complete.

SQL> exec dbms_stats.gather_table_stats(user,'test',cascade=>true);

PL/SQL procedure successfully completed.

SQL> select table_name,num_rows,avg_row_len from user_tables where table_name='TEST';

TABLE_NAME                       NUM_ROWS AVG_ROW_LEN
------------------------------ ---------- -----------
TEST                                    1         188

这是否意味着oracle彻底不想使用long类型了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10972173/viewspace-664476/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
十余年大型金融及电信系统数据库管理经验,曾服务于中国建设银行、中国移动。对oracle,mysql数据库有深入了解。 擅长python开发,独立开发了开源数据库自动化监控运维平台Power Monitor。

注册时间:2008-02-29

  • 博文量
    335
  • 访问量
    1369147