collect statistics - estimate_percent
Hi guys,.
My DB: 10.2.0.5.
Recently, I have a problem with the auto_sample_size.
When you use the sample size car with one of the table, it takes only 2 percent.
For example, some of my references SQLs this table went slow.
When I tried to generate the statistics with 50%, it went very well. (picking up a more optimized plan).
I'm trying to understand (with examples) you guys (experts), on:
1. How does oracle choose the percent when auto_sample_size is specified.
2. a good example why a bad plan will be selected at 2%. and a better plan will be chosen with stats of 50%.
Thank you very much.
I can't seem to find an example on that.
2. a good example why a bad plan may be generated when 2%. and a better plan will be generated with stats of 50%. (when the data are asymmetric)
Can anyone help to provide a simple example to understand?
Of course - have you ever played or watched a basketball game? Have you noticed how REALLY, REALLY big, some of the players in a team are still other players are really short?
1. you are a tailor
2. the coach of the basketball team wants you to uniforms for its 10 players.
3. the coach only will you more than 5 of its 10 players for you can measure uniforms
4. do you prefer a 20% sample or a sample of 50%?
5. what sample size will generate a better set of uniforms ("plan")?
When the data is really uneven (as if it were in this example), you should still a "scan to complete basketball team. Your uniforms will not go well at all if two players get you to "sample" are the shortest (or higher) on the team?
Moral: the information more and better, you have the best decision you can make. It is not only the quantity of statistics but the quality that can make the difference.
How this example does not work for you?
Tags: Database
Similar Questions
-
Collect statistics of the table in windows
Hello
Could you please help me to collect statistics for the tables below in Windows. I tried collection using dbms_scheduler job for a table, but it is not the collection of statistics for tables.
TABLE_NAME OWNER NUM_ROWS BLOCKS Size MQRDW DWREFERENCETRACE GO 2891985937 26372904, 17.86
TRAY PON_SERIAL 563722072 5135734 GB 8,12
TRAY PON_PSN 23588517 32009064 2.67 GB TRAY PON_BOM_LOG 37199475 212936 601 MB
TRAY UNIQUE_ITEM_LOTS 6633907 79710 160 MB
TRAY PON_BOM 5921377 41717 328 MB SQL > start
(2 dbms_scheduler.create_job)
job_name 3 = > "SCOTT_JOB_SCHEDULE"
job_type 4 = > "EXECUTABLE."
5 job_action = > ' begin dbms_stats.gather_table_stats (ownname = > "TRACE3")
6 tabname = > 'PON_PSN ',.
estimate_percent 7 = > 30,
Cascade 8 = > true,
method_opt 9 = > 'for all THE COLUMNS of SIZE 1.
10 degrees = > 5,
11 options = > "BRINGING OUTDATED"); end;',
12 repeat_interval = > ' freq = daily; byhour = 04; byminute = 0; bysecond = 0; »,
13 active = > TRUE,
14 comments = > ' custom stats collection for engine risk ");
15 end;
17 N
PL/SQL procedure successfully completed .
Total number of CPU available on this server is 8
Oracle - 10.2.0.4.0
OS - windows
Kind regards
Bala
52 million lines?
and how to change every day or be inserted?
It is possible that you can never bring his stats again
and everything will probably continue to work as expected
read the guide to setting performance to understand why you need to collect statistics and when
https://docs.Oracle.com/CD/E11882_01/server.112/e41573/stats.htm#PFGRF94714
After reading this guide, you'll be ready for any question, you get all that against this team
Sometimes you need to say 'no' and why the answer is 'no '.
-
Database version is 11g r1 11.1.0.6
I am currently collecting statistics of the schema I am facing following error
SQL > exec dbms_stats.gather_SCHEMA_stats (ownname = > 'WMWHSE1', estimate_percent = > dbms_stats.auto_sample_size, method_opt = > 'FOR ALL THE COLUMNS SIZE AUTO', cascade = > TRUE);
BEGIN dbms_stats.gather_SCHEMA_stats (ownname = > 'WMWHSE1', estimate_percent = > dbms_stats.auto_sample_size, method_opt = > 'FOR ALL THE COLUMNS SIZE AUTO', cascade = > TRUE); END;
*
ERROR on line 1:
ORA-03113: end of file on communication channel
Process ID: 24820
Session ID: 1038 serial number: 34509
First time I successfully gather stats of the schema but the second time I am tring to do, but given the error947721 wrote:
SQL > exec dbms_stats.gather_SCHEMA_stats (ownname-online 'WMWHSE1', estimate_percent-online dbms_stats.auto_sample_size, method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
START dbms_stats.gather_SCHEMA_stats (ownname-online 'WMWHSE1', estimate_percent-online dbms_stats.auto_sample_size, method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE); END;*
ERROR on line 1:
ORA-03113: end of file on communication channel
Process ID: 24820
Session ID: 1038 serial number: 34509You tell not how long the task runs before crashing.
If this isn't a lot of time, you can activate Event 10046 (using dbms_monitor, perhaps) to level 4 (lie).
This can tell you exactly what the session is done when it crashes.Note: If the default grouping is "gather stale", which would explain why the work may run successfully several times before a critical table is going stale and causes an accident on the next collection.
Concerning
Jonathan Lewis -
collect statistics of the table
Hi all
DB version: 10.2.0.4
OS: AIX 6.1
I want to collect the stats table for a table as the query that uses that table is slow. Also, I noticed that this table is using full table scan, and it has been analyzed in last 2 months back.
I intend to run the query to collect the statistics below. The table has 50 million records.
COUNT (*)
----------
51364617
I expect that this will take time if I run the query as below.
DBMS_STATS.gather_table_stats EXEC ('schema_name', 'table_name');
My doubts specified below.
1. can I use the also estimate_percent parameter to collect statistics?
2 should. how much we indicate for the estimate_percent parameter?
3. what difference it will make if I use the estimate_percent parameter?
Thanks in advance
Published by: user13364377 on March 27, 2012 13:28If you are worried about the stats of collection process for a long time running, consider collecting statistics in parallel.
1. can you use estimate_percent? Sure! Go ahead.
2. what percentage of use? Why not let the data decide with auto_sample_size? Various "rules of thumb" were thrown around over the years, usually about 10 to 20%.
3. what difference it will make? Very little, no doubt. Occasionally, you can see where a small sample makes a difference, but in general that it's perfectly ok to estimate its stats.Maybe something like this:
BEGIN dbms_stats.gather_table_stats(ownname => user, tabname => 'MY_TABLE', estimate_percent => dbms_stats.auto_sample_size, method_opt=>'for all columns size auto', cascade=>true,degree=>8); END;
-
AUTHID CURRENT_USER collect statistics
Hi all
I use Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production. I created a procedure that collects statistics from table using DBMS_STATS using AUTHID CURRENT_USER to SChema1.
CREATE OR REPLACE PROCEDURE SCHEMA1.getstats ( p_schema IN VARCHAR2, p_table IN VARCHAR2) AUTHID CURRENT_USER AS BEGIN dbms_stats.gather_table_stats(ownname => p_schema, tabname => p_table, method_opt => 'FOR ALL COLUMNS SIZE AUTO', degree => 8, force => true, no_invalidate => false); END;
I'm trying to use the same procedure to collect statistics for a table in another schema. However, I get the error ORA-20000: impossible to analyze the TABLE ' ' SCHEMA2.» DETAIL_VALUE', insufficient privileges or does not exist
EXEC getstats ( 'SCHEMA2','DETAIL_VALUE');
I grant privileges on the table to SCHEMA1. But still get the error. I understand AUTHID CURRENT_USER will attempt to use as long as the procedure as own drawing, but still, I get the error. Can someone help me on this?
GRANT ALL ON DETAIL_VALUE TO SCHEMA1
It has nothing to do with authid user current and everything to do with the privileges. Grant on the table is not enough for you to analyze.
SQL> conn u1/u1 Connected. SQL> create table foo(bar number); Table created. SQL> grant all on foo to u2; Grant succeeded. SQL> conn u2/u2 Connected. SQL> exec dbms_stats.gather_table_stats('U1', 'FOO'); BEGIN dbms_stats.gather_table_stats('U1', 'FOO'); END; * ERROR at line 1: ORA-20000: Unable to analyze TABLE "U1"."FOO", insufficient privileges or does not exist ORA-06512: at "SYS.DBMS_STATS", line 33859 ORA-06512: at line 1 SQL> conn / as sysdba Connected. SQL> grant analyze any to u2; Grant succeeded. SQL> conn u2/u2 Connected. SQL> exec dbms_stats.gather_table_stats('U1', 'FOO'); PL/SQL procedure successfully completed.
-
collect statistics for the tablespace
Friends...
OS: Linux
DB: 11 GR 2
Data size: 1 TB
I spend monthly multiple partitioned table spaces and bring together in a single annual partition. (for example tbs_2014_01, tbs_2014_02 - tbs_2014_12... all combine them into tbs_2014 as a tablespace)
Over the weekend, work of database gets executed that collects statistics that are obsolete, it collects all the segments that have been moved from the storage.
Given that the collection of statistics at the end of the week takes too long, I tried to find a smart way to collect statistics after each tablespace move rather than waiting for job to weekend which will take two or three days to complete.
1. is there a way to gather statistics at the tablespace level and collect statistics for all objects in this table space?
2. how to determine the overall stats of collection of statistics part?
That is, suppose I have move the tbs_2014_01 tablespace and collect statistics with global stats that could take 2 hours but it will be difficult to spend 2 hours for each stats global tablespace which in my opinion is not good and we should be collecting global stats only once.
3. any other advice?
977272 wrote:
@sol.beach... Thanks for your comments...
I've not been asked to collect statistics to the tablespace but level to collect statistics after that finish objects move in storage.
Given the size of the data, it is difficult to gather all the statistics at the weekend so trying to understand another method to collect the statistics the weekend load will be less.
You can collect statistics object on an object by object basis level after that each object has been moved.
-
How to collect statistics for a partition?
Hi all
I create a table partition. I need to collect statistics for this partition only. Before I used to analyze it, but now I need to analyze using DBMS_STATS.
What is the best way to analyze the partition using DBMS_STATS?
How long will it take to complete?
How can I estimate the time of accomplishment for DBMS_STATS before starting?
Thank you
I create a table partition. I need to collect statistics for this partition only. Before I used to analyze it, but now I need to analyze using DBMS_STATS.
What is the best way to analyze the partition using DBMS_STATS?
Follow the documented instructions: INCREMENTIELLE TRUE and GRANULARITY on AUTO.
See the section "Partitioned objects statistics" the doc of performance tuning
http://docs.Oracle.com/CD/B28359_01/server.111/b28274/stats.htm#i42218
With partitioned tables, the new data is usually loaded into a new partition. As new partitions are added and loaded, statistical data must be collected on the new partition and statistics need to be updated. If the
INCREMENTAL
for a partition table is set to the valueTRUE
, and collect you statistics on the table with theGRANULARITY
parameter defined onAUTO
, Oracle will collect statistics on the new partition and update statistics on the overall table by scanning only those partitions which have been modified and not the entire table. If theINCREMENTAL
for the partitioned table is set to the valueFALSE
(the default), then a full table scan is used to maintain the global statistics. It is a highly resource intensive and time-consuming for large party.How long will it take to complete?
No way to know - using an estimate of 10% takes less time than with an estimated of 40%, which takes less time than using 100%.
How can I estimate the time of accomplishment for DBMS_STATS before starting?
By comparing the amount of data and the percentage of estimate for the data that you have in the other partitions and the time required to collect statistics on other partitions.,.
-
Collect statistics on instant watch
HelloAfter that convert us to the eve of the snapshot of physical standby, do we collect statistics on the database?
Thank you
KarunaRight after the conversion of physical standby on the eve of the snapshot does not require any fresh stats collection. But when you start to modify data in the snapshot database of test/check your application, you will need to gather stats if it is necessary.
concerning
Fahd Mirza
-
Collect statistics in oracle 11 g
Hi all
OPERATING SYSTEM: AIX
DB: 11GI am trying to collect statistics for a specific schema using the mentioned below command:
> exec dbms_stats.gather_schema_stats ('schema_name');
The schema of such size is 140 GB, and it's almost an hour that the above command is still running.
I need to know if it is normal, is there a way to set the control above to the acceleration of reunification.And how can we check if the above command runs successfully from the background, I mean if there is anyway or something like that?
Kind regards
SphinxHello
The runtime for a 140 GB schema seems quite OK.
Without any other parameters, the work of gather_stats will use the 'compute' option, which takes a long calculation for each table.
I've written a procedure that checks for 'fade' in dba_tab_statistics tables and calculates these statistics only.
The request for these tables up looks like:
SELECT table_name, 'NONE' AS nom_partition
OF dba_tab_statistics one
Owner WHERE = i_schema
AND NVL (stale_stats, 'NULL') = 'YES '.
AND NVL (stattype_locked, 'NULL') = 'NULL '.
AND NOT EXISTS
(SELECT 1
FROM dba_tab_partitions b
WHERE table_owner = i_schema
AND a.table_name = b.table_name)
UNION ALL
SELECT table_name, nom_partition
OF dba_tab_statistics one
Owner WHERE = i_schema
AND NVL (stale_stats, 'NULL') = 'YES '.
AND NVL (stattype_locked, 'NULL') = 'NULL '.
AND nom_partition IS NOT NULL;
The preceding section is smooth tables, the lower part is flawed partitions for partitioned tables.
It allows the procedure to collect statistics for the tables and one or more partitions.
It ignores the tables that were calculated before the work of the default oracle.
See you soon,.
FJFranken
-
Hello
My query is regarding the collection of statistics for tables.
My Version of Oracle DB is:
BANNER
--------------------------------------------------------------------------------
Oracle Database 11 g Enterprise Edition Release 11.2.0.1.0 - 64 bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
AMT for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
In versions of prior oracle db, we used to schedule tasks to run on a daily basis for collecting statistics. Especially for tables that are frequent and huge inserts.
I read that in 11g stats for all of the schema on a database are automatically make every night jobs. I checked these jobs and I see that they are running on a monthly basis [joined query]. This job is enabled and is scheduled to run monthly.
This means that my diagram will be analyzed on a monthly basis. My understanding is correct?
Can I still plan jobs to collect statistics for specific tables on every week? This will diminish the performance?
We expect 100000 documents to insert on a daily basis.
Thank youSELECT JOB_NAME, START_DATE, REPEAT_INTERVAL, LAST_START_DATE, NEXT_RUN_DATE,ENABLED FROM dba_scheduler_jobs WHERE job_name LIKE '%STAT%' ORDER BY 1; JOB_NAME START_DATE REPEAT_INTERVAL LAST_START_DATE NEXT_RUN_DATE ENABLED ------------------------------ -------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------- -------------------------------------- ------- BSLN_MAINTAIN_STATS_JOB 16-AUG-09 12.00.00.000000000 AM -07:00 14-APR-13 12.00.00.427370000 AM -07:00 21-APR-13 12.00.00.400000000 AM -07:00 TRUE MGMT_STATS_CONFIG_JOB 15-AUG-09 12.24.04.694342000 AM -07:00 freq=monthly;interval=1;bymonthday=1;byhour=01;byminute=01;bysecond=01 01-APR-13 01.01.01.710280000 AM -07:00 01-MAY-13 01.01.01.700000000 AM -07:00 TRUE
SomiyaYour understanding is not correct. These jobs are in dba_autotask_task.
And they will be run every day.HTH
-------------
Sybrand Bakker
Senior Oracle DBA -
Collect statistics of concurrent request schema...
Hello
Collect statistics of schema ('ALL') taken same duration long concurrent request not completed after 8 hours, too help me in this regard the collection of statistics for all schemas in Oracle Ebs environment.
Application: Oracle Ebs R12 (12.1.2)
DB: 11.1.0.7
OS: Linux5 * 86 X 64
with impatience.
Kind regards
MohsinHi Hussein
Thanks for the reply. Actully there was some statistics locked to other tables, so problem is solved after runing commands below.
Select distinct owner, table_name, stattype_locked
of dba_tab_statistics, where stattype_locked is not null;exec ('SYS') dbms_stats.unlock_schema_stats
exec dbms_stats.unlock_table_stats('SYS','WRH$_SYSSTAT');
Kind regards
Mohsin -
How to collect statistics on the table for tables in a different schema
Hi all
I have a table in a schema, and I want to collect statistics for the table in a different schema.
I gave GRANT ALL ON SCHEMA1. T1 TO SCHEMA2;
And when I tried to run the command to collect statistics to help
DBMS_STATS. GATHER_TABLE_STATS (OWNNAME = > 'SCHMEA1', TABNAME = > 'T1');
The function will fail.
Is there a way we can collect statistics of the table for tables in a schema into another schema.
Thank you
MK.You must grant analyze to schema2.
SY.
-
Hi all
11.1.0.6
We met the performance issue on some lots.
Can it be attributed to a statistic of outdated diagram? We have collected statistics schema 1 months ago.
How often should collect us statistics of schema?
Thank you very much
KinzWell, I guess the query was degraded. Do you mean that it was always like that? In this case, you must take a very different approach: you can set from the beginning.
First get the AWR SQL report. I already told you to do. Then check out some more detail. Run the query with this suspicion,
/ * + gather_plan_statistics * /.And then to get the execution statistics with
Select * from table (dbms_xplan.display_cursor (format-online 'allstats')) last;Yes, it will take an hour or two to run, but it's the best way to get to the truth.
-
How to improve the performance of the scheme to collect statistics CP?
Hello
However, we have developed a few modules like Oracle Financials, SCM, OPM, HR, but 'Schema statistics gather' CP is running for 10:30 hours. The parameters are the following:
Schema name: ALL
Estimate for %: 10
Degree: Null
Flag of backup: NOBACKUP
ID of the request to reboot: Null
Story mode: LASTRUN
Collect Options: COLLECT
Line changes: Null
Invalidating dependent users: Y
How can I set this program to better performance? How can I include only the modules that are being implemented not all (patterns)?
Concerning
ArizHow can I set this program to better performance? How can I include only the modules that are being implemented not all (patterns)?
There is no precise answer to your question and you will need to test the different settings until you are satisfied with the performance - definition of the parameters used to collect statistics of the schema [556466.1 ID] program
Try with "Estimate percent" between 10% and 40%
Thank you
Hussein -
Have we not collect statistics after reorg?
Hello
I did a reorg to a few tables and indexes. After the reorg, I need to collect statistics for these objects?
Database version: 11.2.0.2
Kind regards
Sarayu K.S.... [url http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables006.htm#i1106606] all the statistics in the table become invalid and new statistics should be collected after the removal of the table.
Maybe you are looking for
-
Middle button of the mouse - dosen't work not at all.
So my action more used in Firefox was using the middle mouse button to open a new tab on a link. Suddenly after a format on my PC, the middle button of the mouse now refuses to be recognized by Firefox; He cannot even hold to auto-scroll or anything.
-
I am able to redeem a gift card from another country than here where I live
I received a gift card for Christmas from my mother-in-law is living in England, and I was wondering how I can exchange it as I live in Australia. Bravo guys
-
Cannot install updates after you perform a system restore
I did a system restore on my laptop because vista froze to the loading of desktop screen and now Windows Update stopped working. In addition, the windows update window was damaged since only a few icons without text and is not allowing me to update m
-
difficulties to remove silverlight so that I can download another version of silverlight
I have Comcast cable, when I go on some premium channels other than HBO, I get a message from Silverlite version upgrade. I removed the current version and downloaded the updated version, but it did not download properly. When I try to remove it in
-
How to hide the names and addresses of the people that I send you e-mails to?
I received emails from friends, who have a way of hiding the other names on their mailing list. Can I do this using Microsoft mail? Or is it something provided by those server? And it helps keep away the names and addresses of spammers lists? I do n