Solved

Table Statistics

Posted on 2001-06-18
10
1,424 Views
Last Modified: 2008-03-17
Table Statistics

I am a newbie to Oracle.

I'm selecting all tables from my schema with owner 'PRASHANT'.
like this
          SELECT
               TABLE_NAME
          FROM
               ALL_TABLES
          WHERE
               owner = 'PRASHANT';

I need a PL/SQL code to process each table..estimate statistics and write statistics report in
another table.

Thanks in advance
0
Comment
Question by:prashant_n_mhatre
  • 3
  • 3
  • 2
  • +2
10 Comments
 
LVL 2

Expert Comment

by:stmontgo
ID: 6202960
dba_tab_columns keeps statistics info, is that what you are looking for?

u can use desc dbms_utility.analyze_schema to analyze all objects in a given schema.


SQL> desc dbms_utility.analyze_schema;
PROCEDURE dbms_utility.analyze_schema
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SCHEMA                         VARCHAR2                IN
 METHOD                         VARCHAR2                IN
 ESTIMATE_ROWS                  NUMBER                  IN     DEFAULT
 ESTIMATE_PERCENT               NUMBER                  IN     DEFAULT
 METHOD_OPT                     VARCHAR2                IN     DEFAULT
0
 
LVL 9

Expert Comment

by:dbalaski
ID: 6204949
Depending upon your version --

While dbms_utility.analyze_schema  is good,   oracle recommends that you use the DBMS_STATS package for collecting statistics -- especially for use with the COST BASED OPTIMIZER  
(init.ora  parameter     optimizer=    set to either  CHOOSE,  FIRST_ROWS,  ALL_ROWS)...

This package will populate the base tables behind  the ALL_TABLES/DBA_TABLES views (and others as well)...     It's speed is much faster than the dbms_utility.analyze_schema  

You can read about it in the Oracle8i Supplied PL/SQL Packages Reference Release 2 (8.1.6)
chapter 56  DBMS_STATS  
as well as a few other manuals..

hope this helps,
dBalaski

0
 
LVL 4

Accepted Solution

by:
dda earned 30 total points
ID: 6204967
Also consider this SQL*Plus (not a PL/SQL) example:

set pagesize 0
set feedback off
spool an.sql
select 'analyze table ' || table_name || ' compute statistics;'
   from
      all_tables
   where
      owner = 'PRASHANT';
spool off
@@an.sql
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 4

Author Comment

by:prashant_n_mhatre
ID: 6206913
I have already figured out a solution. It is exactly similar to what 'dda' has proposed.

'dbms_utility.analyze_schema' doesn't work. It simply gives error.


0
 
LVL 4

Expert Comment

by:dda
ID: 6208239
Hmm.. Would you tell us what eror are you getting?
0
 
LVL 4

Author Comment

by:prashant_n_mhatre
ID: 6238161
sorry for not getting back for a long..

It says
SP2-0734: unknown command beginning "dbms_utili..."
0
 
LVL 4

Expert Comment

by:dda
ID: 6240547
Add 'exec' before 'dbms_utility':

SQL>exec dbms_utility.analyze_schema(....)
0
 
LVL 1

Expert Comment

by:Moondancer
ID: 6360905
Please update this question if more is needed, or award th expert who helped you.  If a point split award is in order, let us know details.

Thank you,
Moondancer
Community Support Moderator @ Experts Exchange
0
 
LVL 4

Author Comment

by:prashant_n_mhatre
ID: 6360988
Please split points like:

dda : 30
stmontgo : 20
dbalaski : 20

Thanks Everybody !!!
0
 
LVL 1

Expert Comment

by:Moondancer
ID: 6361156
Point split transactions have now been completed to award experts as follows.  Please comment in your respective
link below to complete.

dda : 30   Awarded in the primary question
Points for  stmontgo : 20   http://www.experts-exchange.com/jsp/qManageQuestion.jsp?qid=20164785
Points for  dbalaski : 20    http://www.experts-exchange.com/jsp/qManageQuestion.jsp?qid=20164787

Thank you,

Mondancer
Community Support Moderator @ Experts Exchange
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Cursors in Oracle: A cursor is used to process individual rows returned by database system for a query. In oracle every SQL statement executed by the oracle server has a private area. This area contains information about the SQL statement and the…
I remember the day when someone asked me to create a user for an application developement. The user should be able to create views and materialized views and, so, I used the following syntax: (CODE) This way, I guessed, I would ensure that use…
This video shows information on the Oracle Data Dictionary, starting with the Oracle documentation, explaining the different types of Data Dictionary views available by group and permissions as well as giving examples on how to retrieve data from th…
This video shows how to configure and send email from and Oracle database using both UTL_SMTP and UTL_MAIL, as well as comparing UTL_SMTP to a manual SMTP conversation with a mail server.

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question