Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: how to know ,the tables which are accessed via FTS?
I didn't think so, but then as I was ignorant of bitand(flag,power(2,19) > 0, I thought I'd check. I was looking for a cheap way of producing a report of full table scans including the statements which produced them. It seems the only way to do so is through explaining the SQL..
Ian MacGregor
Stanford Linear Accelerator Center
ian_at_SLAC.Stanford.edu
-----Original Message-----
Sent: Thursday, March 14, 2002 3:26 AM
To: Multiple recipients of list ORACLE-L
Ian,
There is no relation between data block in the buffer cache and statement that actually read it. For example, if you are about to read 8 blocks (scattered read), and block #3 already in the buffer cache in consistence state, your I/O request will be broken up for 2(1-2) and 5(4-8) blocks. Interesting exercise will be found segments, which experience both type of I/O (sequential and scattered). You may found state of the block (CR or CUR), except segment header which always read in CUR mode, "SELECT" read in CR, while "INSERT/UPDATE/DELETE" in CUR. Not much help, I know.
Alex.
Thanks Alex! The second method is great. However knowing what tables are undergoing a full table scan is only a part of what's needed. One also needs to know the size of the table; i.e., blocks up to the highwater mark, and the statement which caused the scan in the first place. The first I can determine. Can the second be determined without explaining the statements in the sql cache?
Ian MacGregor
Stanford Linear Accelerator Center
ian_at_SLAC.Stanford.edu
-----Original Message-----
Sent: Monday, March 11, 2002 9:58 PM
To: Multiple recipients of list ORACLE-L
Gopal, Ganesh, ...
Small correction:
1. v$session_event does not have file#, block# and blocks. They are in v$session_wait, which may be hard to catch. 2. Absolute best methode. But field name is "flag". not "class", you can use bitand(flag,power(2,19) > 0 as a condition. When join to dba_objects(user_objects) one should use field data_object_id, not object_id. Take care about clusters, as all object in cluster share the same data_object_id. Anothe (but slower) way is join with dba_extents(user_extents). 4. This give accurate info to the file level, not segment level.
Alex.
Ganesh,
You can find FTS in the following methods:
Best Regards,
K Gopalakrishnan
Bangalore, INDIA
-----Original Message-----
Sent: Monday, March 11, 2002 1:12 AM
To: LazyDBA.com Discussion
What will that Acheive... this will not give u Tables that have FTS Done on them.
Best Regards,
Ganesh R
Tel : +971 (4) 397 3337 Ext 420
Fax : +971 (4) 397 6262
HP : +971 (50) 7456019
-----Original Message-----
Sent: Monday, March 11, 2002 1:02 PM
To: LazyDBA.com Discussion
USE analyze table with compute statistcs....
Thanks and regards,
Vipin Jain
----- Original Message -----
To: LazyDBA.com Discussion <mailto:oracledba_at_lazydba.com> Sent: Monday, March 11, 2002 2:20 PM
Hi Gurus ,
One little question
how will i get to know what all tables are accessed via full table scan ?
any help will be highly appreciated
Thnax in advance
Atul Gupta
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: MacGregor, Ian A. INET: ian_at_SLAC.Stanford.EDU Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing ListsReceived on Thu Mar 14 2002 - 09:43:47 CST
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).