How to find the incremental growth of index for last few months
Hi,
How to find the incremental growth of index for last few months.
Thanks,
Sathis.
Hi,
Check the below link, it may help you!
http://www.rampant-books.com/t_tracking_oracle_database_tables_growth.htm
Thanks,
Sankar
Similar Messages
-
How to find the database growth rate?
Wanted to do the forecasting of disk growth for one year. How to find the database growth rate?
RahulThis is code authored by Richard Ding that will log database sizes to a table. If you run it every day, then you can go back and compare the database size differences day to day... week to week... month to month... and year over year. That is
how I forecast growth over time.
Note: There is a database name required that is local to your environment, so change [YOURDATABASENAME] to whatever local database you wish to use. I will also post the DDL to create the target table. Create that table in the database you
name in the stored procedure code and all should run fine.
USE [master]
GO
/****** Object: StoredProcedure [dbo].[sp_SDS] Script Date: 04/22/2015 09:32:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SDS]
@TargetDatabase sysname = NULL, -- NULL: all dbs
@Level varchar(10) = 'Database', -- or "File"
@UpdateUsage bit = 0, -- default no update
@Unit char(2) = 'MB' -- Megabytes, Kilobytes or Gigabytes
AS
** author: Richard Ding
** date: 4/8/2008
** usage: list db size AND path w/o SUMmary
** test code: sp_SDS -- default behavior
** sp_SDS 'maAster'
** sp_SDS NULL, NULL, 0
** sp_SDS NULL, 'file', 1, 'GB'
** sp_SDS 'Test_snapshot', 'Database', 1
** sp_SDS 'Test', 'File', 0, 'kb'
** sp_SDS 'pfaids', 'Database', 0, 'gb'
** sp_SDS 'tempdb', NULL, 1, 'kb'
SET NOCOUNT ON;
IF @TargetDatabase IS NOT NULL AND DB_ID(@TargetDatabase) IS NULL
BEGIN
RAISERROR(15010, -1, -1, @TargetDatabase);
RETURN (-1)
END
IF OBJECT_ID('tempdb.dbo.##Tbl_CombinedInfo', 'U') IS NOT NULL
DROP TABLE dbo.##Tbl_CombinedInfo;
IF OBJECT_ID('tempdb.dbo.##Tbl_DbFileStats', 'U') IS NOT NULL
DROP TABLE dbo.##Tbl_DbFileStats;
IF OBJECT_ID('tempdb.dbo.##Tbl_ValidDbs', 'U') IS NOT NULL
DROP TABLE dbo.##Tbl_ValidDbs;
IF OBJECT_ID('tempdb.dbo.##Tbl_Logs', 'U') IS NOT NULL
DROP TABLE dbo.##Tbl_Logs;
CREATE TABLE dbo.##Tbl_CombinedInfo (
DatabaseName sysname NULL,
[type] VARCHAR(10) NULL,
LogicalName sysname NULL,
T dec(10, 2) NULL,
U dec(10, 2) NULL,
[U(%)] dec(5, 2) NULL,
F dec(10, 2) NULL,
[F(%)] dec(5, 2) NULL,
PhysicalName sysname NULL );
CREATE TABLE dbo.##Tbl_DbFileStats (
Id int identity,
DatabaseName sysname NULL,
FileId int NULL,
FileGroup int NULL,
TotalExtents bigint NULL,
UsedExtents bigint NULL,
Name sysname NULL,
FileName varchar(255) NULL );
CREATE TABLE dbo.##Tbl_ValidDbs (
Id int identity,
Dbname sysname NULL );
CREATE TABLE dbo.##Tbl_Logs (
DatabaseName sysname NULL,
LogSize dec (10, 2) NULL,
LogSpaceUsedPercent dec (5, 2) NULL,
Status int NULL );
DECLARE @Ver varchar(10),
@DatabaseName sysname,
@Ident_last int,
@String varchar(2000),
@BaseString varchar(2000);
SELECT @DatabaseName = '',
@Ident_last = 0,
@String = '',
@Ver = CASE WHEN @@VERSION LIKE '%9.0%' THEN 'SQL 2005'
WHEN @@VERSION LIKE '%8.0%' THEN 'SQL 2000'
WHEN @@VERSION LIKE '%10.0%' THEN 'SQL 2008'
WHEN @@VERSION LIKE '%11.0%' THEN 'SQL 2012'
WHEN @@VERSION LIKE '%12.0%' THEN 'SQL 2014'
END;
SELECT @BaseString =
' SELECT DB_NAME(), ' +
CASE WHEN @Ver = 'SQL 2000' THEN 'CASE WHEN status & 0x40 = 0x40 THEN ''Log'' ELSE ''Data'' END'
ELSE ' CASE type WHEN 0 THEN ''Data'' WHEN 1 THEN ''Log'' WHEN 4 THEN ''Full-text'' ELSE ''reserved'' END' END +
', name, ' +
CASE WHEN @Ver = 'SQL 2000' THEN 'filename' ELSE 'physical_name' END +
', size*8.0/1024.0 FROM ' +
CASE WHEN @Ver = 'SQL 2000' THEN 'sysfiles' ELSE 'sys.database_files' END +
' WHERE '
+ CASE WHEN @Ver = 'SQL 2000' THEN ' HAS_DBACCESS(DB_NAME()) = 1' ELSE 'state_desc = ''ONLINE''' END + '';
SELECT @String = 'INSERT INTO dbo.##Tbl_ValidDbs SELECT name FROM ' +
CASE WHEN @Ver = 'SQL 2000' THEN 'master.dbo.sysdatabases'
WHEN @Ver IN ('SQL 2005', 'SQL 2008', 'SQL 2012', 'SQL 2014') THEN 'master.sys.databases'
END + ' WHERE HAS_DBACCESS(name) = 1 ORDER BY name ASC';
EXEC (@String);
INSERT INTO dbo.##Tbl_Logs EXEC ('DBCC SQLPERF (LOGSPACE) WITH NO_INFOMSGS');
-- For data part
IF @TargetDatabase IS NOT NULL
BEGIN
SELECT @DatabaseName = @TargetDatabase;
IF @UpdateUsage <> 0 AND DATABASEPROPERTYEX (@DatabaseName,'Status') = 'ONLINE'
AND DATABASEPROPERTYEX (@DatabaseName, 'Updateability') <> 'READ_ONLY'
BEGIN
SELECT @String = 'USE [' + @DatabaseName + '] DBCC UPDATEUSAGE (0)';
PRINT '*** ' + @String + ' *** ';
EXEC (@String);
PRINT '';
END
SELECT @String = 'INSERT INTO dbo.##Tbl_CombinedInfo (DatabaseName, type, LogicalName, PhysicalName, T) ' + @BaseString;
INSERT INTO dbo.##Tbl_DbFileStats (FileId, FileGroup, TotalExtents, UsedExtents, Name, FileName)
EXEC ('USE [' + @DatabaseName + '] DBCC SHOWFILESTATS WITH NO_INFOMSGS');
EXEC ('USE [' + @DatabaseName + '] ' + @String);
UPDATE dbo.##Tbl_DbFileStats SET DatabaseName = @DatabaseName;
END
ELSE
BEGIN
WHILE 1 = 1
BEGIN
SELECT TOP 1 @DatabaseName = Dbname FROM dbo.##Tbl_ValidDbs WHERE Dbname > @DatabaseName ORDER BY Dbname ASC;
IF @@ROWCOUNT = 0
BREAK;
IF @UpdateUsage <> 0 AND DATABASEPROPERTYEX (@DatabaseName, 'Status') = 'ONLINE'
AND DATABASEPROPERTYEX (@DatabaseName, 'Updateability') <> 'READ_ONLY'
BEGIN
SELECT @String = 'DBCC UPDATEUSAGE (''' + @DatabaseName + ''') ';
PRINT '*** ' + @String + '*** ';
EXEC (@String);
PRINT '';
END
SELECT @Ident_last = ISNULL(MAX(Id), 0) FROM dbo.##Tbl_DbFileStats;
SELECT @String = 'INSERT INTO dbo.##Tbl_CombinedInfo (DatabaseName, type, LogicalName, PhysicalName, T) ' + @BaseString;
EXEC ('USE [' + @DatabaseName + '] ' + @String);
INSERT INTO dbo.##Tbl_DbFileStats (FileId, FileGroup, TotalExtents, UsedExtents, Name, FileName)
EXEC ('USE [' + @DatabaseName + '] DBCC SHOWFILESTATS WITH NO_INFOMSGS');
UPDATE dbo.##Tbl_DbFileStats SET DatabaseName = @DatabaseName WHERE Id BETWEEN @Ident_last + 1 AND @@IDENTITY;
END
END
-- set used size for data files, do not change total obtained from sys.database_files as it has for log files
UPDATE dbo.##Tbl_CombinedInfo
SET U = s.UsedExtents*8*8/1024.0
FROM dbo.##Tbl_CombinedInfo t JOIN dbo.##Tbl_DbFileStats s
ON t.LogicalName = s.Name AND s.DatabaseName = t.DatabaseName;
-- set used size and % values for log files:
UPDATE dbo.##Tbl_CombinedInfo
SET [U(%)] = LogSpaceUsedPercent,
U = T * LogSpaceUsedPercent/100.0
FROM dbo.##Tbl_CombinedInfo t JOIN dbo.##Tbl_Logs l
ON l.DatabaseName = t.DatabaseName
WHERE t.type = 'Log';
UPDATE dbo.##Tbl_CombinedInfo SET F = T - U, [U(%)] = U*100.0/T;
UPDATE dbo.##Tbl_CombinedInfo SET [F(%)] = F*100.0/T;
IF UPPER(ISNULL(@Level, 'DATABASE')) = 'FILE'
BEGIN
IF @Unit = 'KB'
UPDATE dbo.##Tbl_CombinedInfo
SET T = T * 1024, U = U * 1024, F = F * 1024;
IF @Unit = 'GB'
UPDATE dbo.##Tbl_CombinedInfo
SET T = T / 1024, U = U / 1024, F = F / 1024;
SELECT DatabaseName AS 'Database',
type AS 'Type',
LogicalName,
T AS 'Total',
U AS 'Used',
[U(%)] AS 'Used (%)',
F AS 'Free',
[F(%)] AS 'Free (%)',
PhysicalName
FROM dbo.##Tbl_CombinedInfo
WHERE DatabaseName LIKE ISNULL(@TargetDatabase, '%')
ORDER BY DatabaseName ASC, type ASC;
SELECT CASE WHEN @Unit = 'GB' THEN 'GB' WHEN @Unit = 'KB' THEN 'KB' ELSE 'MB' END AS 'SUM',
SUM (T) AS 'TOTAL', SUM (U) AS 'USED', SUM (F) AS 'FREE' FROM dbo.##Tbl_CombinedInfo;
END
IF UPPER(ISNULL(@Level, 'DATABASE')) = 'DATABASE'
BEGIN
DECLARE @Tbl_Final TABLE (
DatabaseName sysname NULL,
TOTAL dec (10, 2),
[=] char(1),
used dec (10, 2),
[used (%)] dec (5, 2),
[+] char(1),
free dec (10, 2),
[free (%)] dec (5, 2),
[==] char(2),
Data dec (10, 2),
Data_Used dec (10, 2),
[Data_Used (%)] dec (5, 2),
Data_Free dec (10, 2),
[Data_Free (%)] dec (5, 2),
[++] char(2),
Log dec (10, 2),
Log_Used dec (10, 2),
[Log_Used (%)] dec (5, 2),
Log_Free dec (10, 2),
[Log_Free (%)] dec (5, 2) );
INSERT INTO @Tbl_Final
SELECT x.DatabaseName,
x.Data + y.Log AS 'TOTAL',
'=' AS '=',
x.Data_Used + y.Log_Used AS 'U',
(x.Data_Used + y.Log_Used)*100.0 / (x.Data + y.Log) AS 'U(%)',
'+' AS '+',
x.Data_Free + y.Log_Free AS 'F',
(x.Data_Free + y.Log_Free)*100.0 / (x.Data + y.Log) AS 'F(%)',
'==' AS '==',
x.Data,
x.Data_Used,
x.Data_Used*100/x.Data AS 'D_U(%)',
x.Data_Free,
x.Data_Free*100/x.Data AS 'D_F(%)',
'++' AS '++',
y.Log,
y.Log_Used,
y.Log_Used*100/y.Log AS 'L_U(%)',
y.Log_Free,
y.Log_Free*100/y.Log AS 'L_F(%)'
FROM
( SELECT d.DatabaseName,
SUM(d.T) AS 'Data',
SUM(d.U) AS 'Data_Used',
SUM(d.F) AS 'Data_Free'
FROM dbo.##Tbl_CombinedInfo d WHERE d.type = 'Data' GROUP BY d.DatabaseName ) AS x
JOIN
( SELECT l.DatabaseName,
SUM(l.T) AS 'Log',
SUM(l.U) AS 'Log_Used',
SUM(l.F) AS 'Log_Free'
FROM dbo.##Tbl_CombinedInfo l WHERE l.type = 'Log' GROUP BY l.DatabaseName ) AS y
ON x.DatabaseName = y.DatabaseName;
IF @Unit = 'KB'
UPDATE @Tbl_Final SET TOTAL = TOTAL * 1024,
used = used * 1024,
free = free * 1024,
Data = Data * 1024,
Data_Used = Data_Used * 1024,
Data_Free = Data_Free * 1024,
Log = Log * 1024,
Log_Used = Log_Used * 1024,
Log_Free = Log_Free * 1024;
IF @Unit = 'GB'
UPDATE @Tbl_Final SET TOTAL = TOTAL / 1024,
used = used / 1024,
free = free / 1024,
Data = Data / 1024,
Data_Used = Data_Used / 1024,
Data_Free = Data_Free / 1024,
Log = Log / 1024,
Log_Used = Log_Used / 1024,
Log_Free = Log_Free / 1024;
DECLARE @GrantTotal dec(11, 2);
SELECT @GrantTotal = SUM(TOTAL) FROM @Tbl_Final;
INSERT INTO [YOURDATABASENAME].[dbo].[DBSize]
([Weight]
,[DBName]
,[Used]
,[Free]
,[Total]
,[Data]
,[Data_Used]
,[Log]
,[Log_Used]
,[DT])
SELECT
CONVERT(dec(10, 2), TOTAL*100.0/@GrantTotal) AS 'WEIGHT (%)',
DatabaseName AS 'DATABASE',
CONVERT(VARCHAR(12), used) AS 'USED',
CONVERT(VARCHAR(12), free) AS 'FREE',
TOTAL,
CONVERT(VARCHAR(12), Data) AS 'DATA',
CONVERT(VARCHAR(12), Data_Used) AS 'DATA_USED',
CONVERT(VARCHAR(12), Log) AS 'LOG',
CONVERT(VARCHAR(12), Log_Used) AS 'LOG_USED',
GETDATE()
FROM @Tbl_Final
WHERE DatabaseName LIKE ISNULL(@TargetDatabase, '%')
ORDER BY DatabaseName ASC;
IF @TargetDatabase IS NULL
SELECT CASE WHEN @Unit = 'GB' THEN 'GB' WHEN @Unit = 'KB' THEN 'KB' ELSE 'MB' END AS 'SUM',
SUM (used) AS 'USED',
SUM (free) AS 'FREE',
SUM (TOTAL) AS 'TOTAL',
SUM (Data) AS 'DATA',
SUM (Log) AS 'LOG'
FROM @Tbl_Final;
END
RETURN (0)
GO
USE [YOURDATABASENAME]
GO
/****** Object: Table [dbo].[DBSize] Script Date: 04/22/2015 09:49:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[DBSize](
[UID] [int] IDENTITY(1,1) NOT NULL,
[Weight] [decimal](18, 2) NULL,
[DBName] [varchar](250) NULL,
[Used] [decimal](18, 2) NULL,
[Free] [decimal](18, 2) NULL,
[Total] [decimal](18, 2) NULL,
[Data] [decimal](18, 2) NULL,
[Data_Used] [decimal](18, 2) NULL,
[Log] [decimal](18, 2) NULL,
[Log_Used] [decimal](18, 2) NULL,
[DT] [datetime] NULL,
CONSTRAINT [PK_DBSize] PRIMARY KEY CLUSTERED
[UID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO -
How to find the number of references created for a given object ??
How to find the number of references created for a given object in a big application environment.
That means, if i give any object name (of my application) as input, then how can i find the[b] number of references created for that particular object ??Please do not post the same question multiple times.
As for your original question, there is no direct way to do it.
Especially not the way you phrased it,
since objects don't have "names".
Applications also don't have "names".
They have classes and instances.
Also, there are 2 related issues, and I'm not sure which one is the one you asked.
#1. Finding the number of references to the same object.
Eg.
Map<String,String> a = new HashMap<String,String>();
Map<String,String> b = new HashMap<String,String>();
Map<String,String> c = a;In this case, there are only 2 objects.
The first object has (at least) 2 references pointing to it.
The second object has (at least) 1 reference pointing to it.
(There may be more, if the HashMap library keeps
references to these things, or if the HashMap object has
some internal cyclic references...)
If you're asking this, then it can't be done.
It's an active research topic in universities
and software research labs, called "alias analysis".
Type it in google, and you'll see people are working hard
and having little success so far.
#2. Finding the number of instances created from a class.
In this case, what you have to do is to add a counter to
the constructor of the class. Every time an object is constructed,
you increment the counter. Like this:
class MyClass
public static int counter = 0;
public MyClass( ) { counter++; }
// Then later in your program, you can do this:
MyClass a = new MyClass();
MyClass b = new MyClass();
System.out.println(MyClass.counter); // It should show 2Note: you won't be able to do this to every class in the system.
For every class you care about, you have to modify its constructor.
Also: when an object is deleted, you won't always know it
(and thus you won't always be able to decrement the counter).
Finalizers cannot always work (read Joshua Bloch's
"Effective Java" book if you don't believe me), but basically
(1) finalizers will not always be called, and
(2) finalizers can sometimes cause objects to not be deleted,
and thus the JVM will run out of memory and crash -
How to find the count of tables going for fts(full table scan in oracle 10g
HI
how to find the count of tables going for fts(full table scan) in oracle 10g
regardsHi,
Why do you want to 'find' those tables?
Do you want to 'avoid FTS' on those tables?
You provide little information here. (Perhaps you just migrated from 9i and having problems with certain queries now?)
FTS is sometimes the fastest way to retrieve data, and sometimes an index scan is.
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:9422487749968
There's no 'FTS view' available, if you want to know what happens on your DB you need, like Anand already said, to trace sessions that 'worry you'. -
How to find the number of idocs generated for a customer on the basis of his purchase order in a day ?
Dear Friends,
I am absolutely agree with your answer .
But my question is,
Lets say.....
One customer sending X number of purchase orders in a day , so how many IDocs generated on that specific day for that specific customer .
So, Question is , How can we find the no of sales orders(IDocs) generated for the customers on the specific day ?
Hope you all understood my requirement .
Thanks & Regards,
Aditya -
How to find the WebUrl alert was raised for external network
I have two weburl's requestes to monitor under SCOM2007 R2
url one: https://www.asdftest.com
url two: https://www.lkjhtest.com
"url one" is configured to access the weburl from internal network and external network(internet) as well.
"url two" is not configured to access from external network(internet). only configured for for internal network.
I have configured for scom monitoring for the above two urls using the SCOM 2007 R2 web application template. After configuration i have not received any alert from the "Url Two"
Q1). I am expecting an alert for "Url two" because it is not configured for external network access.
why i was not received any alert for that.
Q2). How to find an web Url alert is raised for internal network or external network. SCOM Tool is not asked me to specify that the weburl is is from internal/external network access.
Q3). Particularly how to find the Url alert was raised for external network
please suggest me and correct me if i am wrong.
Thanks in advance.Hi,
Please refer to your another thread:
http://social.technet.microsoft.com/Forums/en-US/10d32ff3-d1a5-4875-b1ad-bb01a5799a33/web-url-monitoring-internalexternal-network?forum=operationsmana
Regards,
Yan Li
Regards, Yan Li -
How to find the customer ledger account display for profit centerwise
Dear All,
how to find the customer ledger account display for profit centerwise
Pleas give your valuable suggestion
Regards
Vishwajeet SharmaHi
check the tables
A959
A962
A997
The assignment depends on so many things
with respect to which transaction you wants the PRCTR field for KUNNR?
Regards
Anji -
How to find the TCODE that is created for the table maintanance generator
Hi ,
How to find the TCODE that is created for the table maintanance generator of particular table,if we only know the table name.
Regards
Ramakrishna LHello,
I try it this way
1. Goto SE16 --> enter table TSTCP.
2. In the selection-screen displayed, enter
PARAM = *<ZTABNAME>*
You will get the t-code for the TMG.
BR,
Suhas
PS: Are you sure a t-code has been created for this TMG ? -
How to find a perticular t.codse used in last 6 months
Hi All,
can anyone let us know how to find a perticular t.codse used in last 6 months.
Regards!!Hi,
Its all depends on the settings has done for transaction ST03N.
If it has explicitly set to last 6 months then you can find in the left hand side transaction profile coloumn of ST03N.
If not you can set it by the following way:
ST03N>goto collector and perfomrance DB>monitoring database-->Reorganisation
Thank you,
Tilak -
How to find the grants given to user for package/procedure?
Hi all,
how to find the grants in oracle for what all are the grants a user is having for package and procedure?
Thanks & Regards,
M.Murali..M. Murali
Questions like this are asked over and over again on numerous sites on the Internet, including this forum, and answered.
You are aware this forum has a 'Search Forum' button?
PLEASE USE IT and STOP asking FAQ and DOC questions!!!!!!!!!!!!!!!!!!!
Sybrand Bakker
Senior Oracle DBA
Experts: those who did read the documentation -
How to find the cpu usage per query for a time period
Hi All,
Is there a way to find the cpu used per query for a given time period?
DB:10.2.0.5
OS:AIX
Thanksuser13364377 wrote:
if there are multiple queries starting at the same time, then what to do?Handle: user13364377
Status Level: Newbie (10)
Registered: Jul 5, 2010
Total Posts: 264
Total Questions: 113 (84 unresolved)
why so many unanswered questions?
clarify your question
same SQL multiple times from different sessions?
or
different SQLs from different sessions? -
How to get Maximum Number of Concurrent users for last few days?
Hi,
How I can get maximum number of concurrent users which were logged in to the system (ECC 5.0) I mean I want to check the hostory for last few weeks. Is there any way to get the same? I know that I can get Cumulative number of users in st03 under Expert mode but that is the number of users logged into the system during the day. Is there any place where SAP maintians the High Watermark of Number of concurrent users reached in the system?
Thanks in advance...
Regards,
PravinSorry I really missed that I have posted a question here on sdn. I wanted to know this for planning the system hardware requirements. Activities like PM ( Performance Management ) happens once a year and during that activity we see heavy user loan on the system so if I have the exact stats of 1 or 2 years data I can size the system better next time. Fortunately last 2 years PM was very smooth for us. In that look for the improvement because each time we had little extra Harware. By doing the exact analysis we can save a Cost of ownership...
I was looking for R/3 users. I could see the number in st07 but I want to know the exact number at particular time.. I believe that st07 stores only for few days.
Thanks
Pravin -
Does it harm the battery if the macbook stays turned off for a few months?
I might be in a situation where I will not use my macbook for a few months. A family member may use it occasionally, but it would be turned off most of the time. Does this hurt the battery or other aspects of computer performance?
From the User Manual: "Storing your MacBook If you are going to store your MacBook for an extended period of time, keep it in a cool location (ideally, 71° F or 22° C) and discharge the battery to 50 percent. When storing your computer for longer than five months, discharge the battery to approximately 50 percent and then remove it from your MacBook. To maintain the capacity of the battery, recharge the battery to 50 percent every six months or so."
-
How to find the worst cluf having indexes? on 10gR2
If the clustering factor(dba_index.clustering_factor) value is close to number of rows of the related table(dba_table.num_rows) this shows bad clustering_factor(CLUF) where as if CLUF is close to the number of blocks of that related table than this shows good CLUF.
So how may I find the indexes having the worst CLUF valuse in my database. Looking for an SQL operator which produces this "close to" output;
create table tdba_indexes nologging parallel 4 pctused 99 pctfree 1 as
SELECT t2.owner, t2.table_name, index_name, clustering_factor, t2.num_rows, t2.blocks, t2.sample_size
FROM dba_indexes t1, dba_tables t2
WHERE clustering_factor > 0
AND t1.owner NOT IN ('SYS', 'SYSTEM')
AND t2.owner NOT IN ('SYS', 'SYSTEM')
and t1.owner = t2.owner
and t1.table_name = t2.table_name
AND t2.blocks > 0
ORDER BY clustering_factor DESC ;
create table tcluf_bad nologging parallel 4 pctused 99 pctfree 1 as
SELECT *
FROM (SELECT CASE
WHEN a_sql_operator_needed_here_for_close_to_determination THEN
'BAD'
ELSE
'NOT SO BAD'
END AS "CLUF",
abs(clustering_factor / num_rows) ratio1,
abs(clustering_factor / blocks) ratio2,
t.*
FROM tdba_indexes t)
WHERE cluf = 'BAD' ;Thank you.John thank you for your comments. You are right, making structural changes on a table(like CTAS with ORDER BY parallel to the bad CLUF indexes' columns sort) may introduce new problems for other queries involved with other indexes.
This is not a good approach after all. What I am trying is to reduce he high db file sequntial read waits on my CRM database.
http://www.perfvision.com/wait/db_file_sequential_read.html
My primary focus must be SQL and Application tuning to reduce the logical i/o amounts of these queries which are the root cause of this wait. But also I saw that these queries have high CLUF values and doing INDEX RANGE SCAN and this kind of a change may also helpful.
In order to find the root cause queries of this wait I am planning to use this query, can I also have your comments on this;
SELECT a.sql_text, t.*
FROM (SELECT tt.*
FROM (SELECT rownum rn, x.*
FROM (SELECT a.sql_text, a.user_io_wait_time, a.executions, a.sql_id
FROM v$sqlstats a
WHERE user_io_wait_time > 0
AND executions > 10
ORDER BY a.user_io_wait_time DESC) x) tt
WHERE rn < 11) a,
TABLE(dbms_xplan.display_cursor(a.sql_id,
NULL,
'ALL')) t
WHERE plan_table_output LIKE '%INDEX%RANGE%SCAN%';Best regards.
Message was edited by:
antu -
How-To Find the R/3 Table Name for a BW Data Source
Hi there,
Please advice how can I find the respective table name in R/3 for a particular BW DataSource ?
P/S : I would like a technical how-to instead of referring the table names at HELP.SAP.COM
For instance, for my Standard Business Content Info Cube 0CCA_C03(CO-OM-CCA: Statistical Key Figures) which extracts from BW Data Source: 0CO_OM_CCA_4
My question is, how can I find out which specific tables in SAP R/3 is this Data Source pulling the data from ?Hi Dinesh,
Data Source: 0CO_OM_CCA_4
1) In my R/3, I ran SE16 : Table -> ROOSOURCE
2) OLTPSOURCE -> 0CO_OM_CCA_4
3) EXMETHOD = F1
(Hence, I assume the Extraction Method is a Function Module)
4) So, Function Module = BWOM_RS_GET_CTRSTA
5) Run SE37 in R/3
How do I find out the specific tables in this Function Module ?
Would you please list them for me, so I can further refer to the individual tables ?
Maybe you are looking for
-
White gaps in black stroke of clipping mask path
Drew a path in Illustrator - made it a compound path. Made a clipping mask with another object inside it. When saved as a pdf, there are these strange white gaps in the stroke of the path.....
-
Waring messages for PO Date in the contract creation?
Hi Friends, Expecting answers with some functional knowledge, I am developing one webservice to create value contract from dotnet front end, So user can enter inputs from that front end and he will get SAP generated value contract id. Here I did vali
-
Vendor evaluation - downgrade analysis
Hi, I've a requiremnte in my project that the client wants to see why the grade for some criteria is below 100. So, I would like to know if I have any report showing de delays of the vendor and quantity difference in the goods receipt by Purchase Ord
-
After upgrade to Lion I am no longer able to attach files to event
After upgrade to Lion I am no longer able to attach files to event
-
Getting error message "Adobe Application Manager is needed to resolve this problem, however it is missing or damaged. Download a new copy of Adobe Application Manager or install this product again". I am using CS5. The only patch I can find is for