Removes the table causing a lot of disk reads

Until recently that we hadn't made many deletions on one of our large tables in the comic book. After a recent project has been implemented, system performance has gone downhill a bit. Research in one of the top offenders through v$ sql, we find this:

REMOVE IRQ INSPECTION_REQUEST WHERE WORK_ORDER_SEQ =: B1 AND SEQUENCE_ID IN (SELECT SEQUENCE_ID FROM (SELECT SEQUENCE_ID, CHAR_VALUE FROM INSPECTION_REQUEST_CHAR WHERE WORK_ORDER_SEQ =: B1) X WHERE THE CHAR_VALUE IS NULL).

Here are some stats I see in table v$ sql:

Performances: 4
Analyze the calls: 4
Disk reads: 565457
Gets the buffer: 634626
Time CPU: 69280000
Elapsed time: 290015297

If I read this correctly 100 000 disk reads are performed on average whenever this statement is executed. The situation that I am is that the table we are trying to remove from has not been analyzed in almost 2 years and many of the indexes on the table have not been analysed in more than a year. Is my problem here something to do with the fact that this analysis has not been done or is there something else, I'm missing?

We checked the SQL to use the correct index and it is set to perform at its best. We have also tried to run this in our dev environment, and we have the same problem with the slow delete. We even watched the rowid for a row we try to delete and tried to delete by the rowid and the DB is still thousands of readings of the disk to perform this deletion. Our dev table and all the clues have been analyzed recently (last month or almost).

So maybe it takes away the possibility that the absence of analysis of the tables and indices of production contributing to the issue. At this point, I am at a loss. Here is the statistical information for this table in the production.

Parameter, value
Size in MB, 20464.00
Numbers Extents, 1279
Size in bytes, 21458059264

TABLE_NAME, INSPECTION_REQUEST
NOM_TABLESPACE, DATA_LARGE_2
CLUSTER_NAME,
IOT_NAME,
PCT_FREE, 10
PCT_USED,
INI_TRANS, 1
MAX_TRANS, 255
INITIAL_EXTENT, 1048576000
NEXT_EXTENT, 16777216
MIN_EXTENTS, 1
MAX_EXTENTS, 2147483645
PCT_INCREASE, 0
FREELISTS,
FREELIST_GROUPS,
LOGGING, YES
BACKED_UP, N
NUM_ROWS, 18095357
BLOCKS, 1196456
EMPTY_BLOCKS, 0
AVG_SPACE, 0
CHAIN_CNT, 0
AVG_ROW_LEN, 485
AVG_SPACE_FREELIST_BLOCKS, 0
NUM_FREELIST_BLOCKS, 0
DEGREE, 1
CASE 1
MEMORY CACHE, N
TABLE_LOCK, ENABLED
SAMPLE_SIZE, 18095357
LAST_ANALYZED, 2007-04-01 06:41:24
PARTITIONED, NO.
IOT_TYPE,
TEMPORARY, N
SECONDARY, N
NESTED, DON'T
USER_TABLES, DEFAULT
ROW_MOVEMENT, DISABLED
GLOBAL_STATS, YES
USER_STATS, NO.
DURATION,
SKIP_CORRUPT, DISABLED
SURVEILLANCE, NO.
CLUSTER_OWNER,
ADDICTIONS, DISABILITIES
COMPRESSION DISABLED

user9539428 wrote:

delete from inspection_request where sequence_id = 9911147198;

SEQUENCE_ID is the primary key on the table INSPECTION_REQUEST. This only delete statement performs 7 000 disk reads. Is this normal? We have this problem even if it is disable triggers that would fire following this statement.

To everyone who looks at the thread, the version of db, on that we are is 9.2.0.8.

If you have verified that all triggers are actually disabled on the table, there are a few potential candidates that could cause this large amount of activity during the removal of a single line:

* Enabled foreign keys referencing this table
* Maintenance of Index, your index finger on the table could be degenerate and could benefit from an operation of "merge".
* Bugs in SAMS if you use a tablespace locally managed with automatic management of the space for indexes

You can follow this thread that might have similar problems:

Ellapsed time too tkprof output

Try to run the simple removal using SQL trace enabled (Event 10046) scopes as described in the above thread. After the release of "tkprof" of the trace file generated here, as described in the following thread: [when your query takes too long | http://forums.oracle.com/forums/thread.jspa?threadID=501834]

Kind regards
Randolf

Oracle related blog stuff:
http://Oracle-Randolf.blogspot.com/

SQLTools ++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676 /.
http://sourceforge.NET/projects/SQLT-pp/

Tags: Database

Similar Questions

  • Remove the Table created in the forms - IOM Designer

    Dear all,
    Is it possible to remove the Table created in the form designer?

    The Recycle Bin icon is disabled in the console of the design.

    Thank you for your help

    Restore the database.

    This is an instance of dev is for. :)

    Best regards
    / Martin

  • Remove the table for a photo table control framework

    Hello

    I need to create an array of 2D images. Due to the large amount of elements in the array, the width of the image is reduced to a minimum. However there are still a considerable gap between the 2 adjacent elements in the table (see the attached example), which is caused by the picture in the image control.

    I tried to affect the color of transparent photo frame, but even if it is invisible, it is still there. I tried to customize the control too, but I couldn't find a way to remove the framework (for classic and modern styles).

    (BTW, for the control of classical style, there is an option without color box control framework, but no option for 2D image control.) I need model/photos inside the element of control 2D image, so simple color 1 color box is not enough)

    Could someone help to suggest a way to remove the frame and optimize the density of space in the table? Thank you much in advance.

    PJI

    Hello, PJI,.

    You should be able to define the lower field in the area of the image of the control.

    -Right click Control and choose "Advanced Properties"-> "Customize.."

    -To the editor change order to 'Edit Mode'

    -from the menu, click on 'Window'-> 'display the parts.

    -In the part window, select the frame

    -set new values for top, left, height, and width, so that the image is behind the area of the photo

    I hope this helps.

    UliB

  • Remove the table if the value not in APEX_APPLICATION. G_f01?

    Hello again!

    I have an apex_application.g_f01 that contains the values in the boxes, now I want apex to remove rows from the table that contains values that are not present in the G_f01 (what are disabled) on submit.

    I can't understand the sql code to do this, could someone give an example?

    This can be a simple thing, but I'm getting confused a lot with sql, maybe because I just php and java.

    EgaSega wrote:

    I have an apex_application.g_f01 that contains the values in the boxes, now I want apex to remove rows from the table that contains values that are not present in the G_f01 (what are disabled) on submit.

    I can't understand the sql code to do this, could someone give an example?

    This can be a simple thing, but I'm getting confused a lot with sql, maybe because I just php and java.

    One possibility would be to create a collection of APEX containing key checked values and use that as the source of the lines to be kept in the SQL delete. Something like:

    begin
    
      apex_collection.create_or_truncate_collection('CHECKED_VALUES');
    
      for i in 1..apex_application.g_f01.count
      loop
        apex_collection.add_member(
            p_collection_name => 'CHECKED_VALUES'
          , p_c001 => apex_application.g_f01(i));
      end loop;
    
      delete from t
      where not exists (select
                           null
                       from
                            apex_collections c
                       where
                           collection_name = 'CHECKED_VALUES'
                       and c.c001 = t.id);
    
    end;
    
  • records_per_block: can be set when the table has a lot of data?

    Hello

    We have a partition table with a length of middle line of 7K, and there are a lot of the line string. The score is based on the date, old partition will be truncated and reused later. I'm trying to find a way to limit the rows by block 1 (pct_free is another way, but is not reliable), it looks like records_per_block is a parameter that could be defined at the table level. But unfortunately, my test shows that the use of records_per_block, the table must be an empty table and insert a row inside and then set records_per_block, otherwise records_per_block will be ignored. Is there a solution?
    SQL> create table t_11 as select rownum a, rpad('x',100,'x') b from dual connect by rownum<100;
     
    Table created
    SQL> delete t_11 where a<65;
     
    64 rows deleted
    SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t_11 group by dbms_rowid.rowid_block_number(rowid);
     
    DBMS_ROWID.ROWID_BLOCK_NUMBER(   COUNT(*)
    ------------------------------ ----------
                            121354          2
                            121355         33
    SQL> alter table t_11 minimize records_per_block;
     
    Table altered
    SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t_11 group by dbms_rowid.rowid_block_number(rowid);
     
    DBMS_ROWID.ROWID_BLOCK_NUMBER(   COUNT(*)
    ------------------------------ ----------
                            121354          2
                            121355         33
    SQL> insert into t_11 select * from t_11 where rownum<100;
     
    35 rows inserted
    SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t_11 group by dbms_rowid.rowid_block_number(rowid);
     
    DBMS_ROWID.ROWID_BLOCK_NUMBER(   COUNT(*)
    ------------------------------ ----------
                            121354         37
                            121355         33
     

    A solution that is not quite perfect - alter table XXX pctfree, pctused 99 1.
    Unless your beginning of lines off incredibly short it will probably limit you to one line per block for the future DML.

    As a guideline for "ranks shortcuts" (and this may vary slightly depending on whether you use SAMS or not):

    SQL> insert into t1 values(rpad('x',42));
    
    1 row created.
    
    SQL> insert into t1 values(rpad('x',1));
    
    1 row created.
    
    SQL> select rowid from t1;
    
    ROWID
    ------------------
    AAAY2bAAFAAAA4KAAA
    AAAY2bAAFAAAA4LAAA
    

    Your analysis of the rows_per_block is not quite right — but the critical point is correct, it is very difficult to get the recorded "records per block" reduced once you have data in place. Here is an improved version of your test cut-n-pasted from a SQL * Plus term in 10.2.0.3:

    SQL> @temp
    SQL> set echo on
    SQL>
    SQL> drop table t_11;
    
    Table dropped.
    
    SQL>
    SQL> create table t_11 as select rownum a, rpad('x',100,'x') b from dual connect by rownum<100;
    
    Table created.
    
    SQL>
    SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t_11 group by dbms_rowid.rowid_block_number(rowid);
    
    DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
    ------------------------------------ ----------
                                    5642         66
                                    5643         33
    
    2 rows selected.
    
    SQL>
    SQL> delete t_11 where a between 31 and 70;
    
    40 rows deleted.
    
    SQL>
    SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t_11 group by dbms_rowid.rowid_block_number(rowid);
    
    DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
    ------------------------------------ ----------
                                    5642         30
                                    5643         29
    
    2 rows selected.
    
    SQL>
    SQL> alter table t_11 minimize records_per_block;
    
    Table altered.
    
    SQL>
    SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t_11 group by dbms_rowid.rowid_block_number (rowid);
    
    DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
    ------------------------------------ ----------
                                    5642         30
                                    5643         29
    
    2 rows selected.
    
    SQL>
    SQL> insert into t_11 select * from t_11 where rownum<100;
    
    59 rows created.
    
    SQL>
    SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t_11 group by dbms_rowid.rowid_block_number(rowid);
    
    DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)   COUNT(*)
    ------------------------------------ ----------
                                    5644         33
                                    5642         33
                                    5643         33
                                    5645         19
    
    4 rows selected.
    
    SQL> spool off
    

    I delete the last lines 36 to one block and the first 4 lines on the other. For this reason, Oracle is capable (on the block drain plug) to reduce the size of the + 'line directory' + in the first block by removing the pointers 'empty' to the end of the book - but it cannot eliminate all entries in the directory of the line of the second block because the "empty" pointers are not at the end of the directory.

    Code to determine the limit on the number of lines per block looks like the size of the largest directory online - not the current number of rows in the block.

    In my example, the largest directory of line is 33 because the last 34 entries have been pruned at the end; in your example, the largest directory of line was still 67 because your deletion had left two rows at the end of the directory.

    Concerning
    Jonathan Lewis
    http://jonathanlewis.WordPress.com
    http://www.jlcomp.demon.co.UK

    "Science is more than a body of knowledge; It's a way of thinking. "
    Carl Sagan

  • How to remove the table border

    Dear Kings.

    I was trying to remove the borders of tables (my coding below).

    This encoding does not "result: undefined"? How to remove all borders from the table. Please suggest friends.

    var mTables = app.activeDocument.stories.everyItem().tables.everyItem();  
    with (mTables) {  
      topBorderStrokeWeight = 0;
      bottomBorderStrokeWeight = 0;
      leftBorderStrokeWeight = 0;
      rightBorderStrokeWeight = 0;
      }
    alert("Done")
    

    Thank you in advance to all

    Try this,

    if(app.activeDocument.stories.everyItem().tables.length>0)
    {
    app.activeDocument.stories.everyItem().tables.everyItem().cells.everyItem().bottomEdgeStrokeWeight = 0;
    app.activeDocument.stories.everyItem().tables.everyItem().cells.everyItem().topEdgeStrokeWeight = 0;
    app.activeDocument.stories.everyItem().tables.everyItem().cells.everyItem().leftEdgeStrokeWeight = 0;
    app.activeDocument.stories.everyItem().tables.everyItem().cells.everyItem().rightEdgeStrokeWeight = 0;
    }
    
  • How to find if the data in the table are distributed on multiple disks

    Hi all

    I have a question on parallel processing.

    Assume that the Oracle (11 g 2) database is installed on a 12 CPU hardware has 24 independent labels, then I guess it's that we can have a maximum of 12 DOP.

    But if the table on which I use the parallel market that spans only 4 discs then the above 4 parallelism will degrade the performance of the query.

    My question is how do I know if the data in the table are spread over the number of disk drives, so that we can properly apply valid parallel operations on the table.

    Appreciate your valuable contributions here.

    Thank you
    MK.

    Just think logically.
    What is a table in the database? A segment.
    What is a segment made up of? Scopes.
    What is recorded on a scale? The id_fichier of the data file.

    ------------
    Sybrand Bakker
    Senior Oracle DBA

  • How to remove the Tables of HFM Application in SQL

    Hi gurus

    1. how to remove the HFM Application Tables in SQL?
    Its manual removal but each application having 120-150 tables? How to do this in one fell swoop?

    I deleted some applications using the workspace / shared services, but still its display under HFM under the Tables of SQL Server.

    Please help me

    concerning
    Smilee

    Hi Smilee,

    1. If the application opens in the web management interface, go to Taskflows management module and make sure that no taskflows exist yet for this application. Remove any existing taskflows.

    2. If demand exists in Shared Services, right-click on the demand for Shared Services and try to remove the application from here

    3. stop Hyperion Shared Services and all the Windows of financial management processes and backups of the relational database of the two patterns.

    4. check the relational database of Hyperion Shared Services repository, in the "ces_apps" table and make sure that there are no lines containing the appname "EXAMPLE." If the line still exists you should enlist the help of Oracle Global Support software to clean Hyperion Shared Services before proceeding.

    5. it is possible to remove all content removed from the relational database of financial management application. Must be very careful when handling manually tables database that permanent damage can be done at the application and other applications if the wrong content is removed.

    (a) first remove all tables, indexes, sequences, and the package objects that begin with the name of the application
    (b) remove all tables starting HSV_appname_xxxxxx
    (c) remove all rows in tables referring to demand HSX_CLUSTER_xxxxx.
    (d) delete all the HSV_ACTIVITY_KILL_USERS, HSV_ACTIVITY_NO_ACCESS, HSV_ACTIVITY_SESSIONS and HSV_ACTIVITY_USERS and HSV_USERS_ON_SYSTEM lines that refer to the name of the application.
    (d) remove the line containing the name of the application from the HSX_DATASOURCES table.

    6. the next time that all Hyperion services are restarted, the application must be removed safely from Windows client.

    You can contact your DBA to write a query on how to remove it.

    Hope this helps,

    Thank you
    Charles Babu J

  • Remove the Table of contents of a Quiz

    Hello

    Is it possible to remove access to the training when the user passes a test? Looks like there must be a way...

    Dan

    Action Rod pointing to that is to assign the value 1 to the system variables cpLockTOC. Its default value is 0. It is not even necessary to have a tip action, at least if you're on a later version of Captivate because the system variable is not in the drop-down list of the accordion to Actions in the slide properties. A simple action on enter to the first question slide will do. Don't forget to switch it to 0 when you enter backstage after the quiz to allow access again. And the linear?

    It is also possible to hide the table of contents with another variable of system but only if you use the table of contents in overlay mode.

    http://blog.lilybiri.com/system-variables-in-Captivate-6

    Lilybiri

  • Why can't remove the table?

    I find a table under soctt Solaris 11g, named BIN$ dnz9wkbnQZaxdctGcob3RA == $ 0, as follows:
    SQL > select * from tab;

    TNOM TABTYPE CLUSTERID

    BIN$ dnz9wkbnQZaxdctGcob3RA == $0 TABLE
    BONUS BOARD
    DEPT TABLE
    EMP TABLE
    SALGRADE TABLE

    I do not know when the table created, if I want to delete the table, can I use following command:
    SQL > drop table BIN$ dnz9wkbnQZaxdctGcob3RA == $0;
    drop table BIN$ dnz9wkbnQZaxdctGcob3RA == $0
    *
    Line 1 error:
    ORA-00933: SQL not correctly completed command.

    Why I can't remove this table? How to do?
    Thank you

    Handle: EdwardKing
    Status level: Beginner
    Join date: 27 May 2002
    Messages total: 61
    Total Questions: 24 (24 remaining)
    so many questions without answers ANY .
    :-(

    http://forums.Oracle.com/forums/Ann.jspa?annID=718

    Why I can't remove this table? How to do?

    When a table is dropped, it goes in the TRASH; It may therefore be FLASHBACK.

    What you're trying to DELETE a table already in the TRASH; is NOT authorized.

    When all else fails, read the Fine

    http://download.Oracle.com/docs/CD/B28359_01/server.111/b28310/tables011.htm#ADMIN11682

    Published by: sb92075 on February 11, 2011 17:47

  • remove the table filter criteria

    I used af:table to display data and used the data in the column filter to filter. After you have specified any search criteria, that he must remove it manually, and then press ENTER. I want to remove the search by program criteria and display the data in the table without any search criteria.
    How to remove table filter criteria in backing bean and update the table?
    Thanks in advance.

    Use google and search for "programmatically manipulate filter a table QBE fields" (from steve muench) ;)

  • remove the table select row

    Hello

    I'm trying to find a way to delete a selected line in a text file. You can find a classic text file that join this message.

    I first try to insert the text file in the command using node property value drop-down list box, but I see that the first line. I did the same thing with a command table and it works! Now, I need to select a row and delete it. I try to use the node property of the active cell, but I always get (0,0). Why? Someone knows how to do?

    Better idea to do the same task is also welcome.

    LabVIEW 8.5 windows XP

    Thank you

    Francis

    Hi Francis,.

    You should try using the attribute SelStart to the table rather than the property of the Active cell.  Active cell is just used to set the active cell.  Here is a quick change that I made to your code that deletes the selected table row when you press the button Delete and resulting out of the table.  I hope that you should get pointed in the right direction.

  • Can I remove the old updates to recover hard disk space?

    Is it safe to remove the old, very old updates? Windows Vista

    N ° let your system protected and vulnerable.

    Forget them.

  • want to remove the table in 10g

    Hi all;

    I was 1 million inserting dummy records in the table.

    Unfortunately, closed session without commit or rollback.

    > > now, I want to delete the table

    SQL > drop table petra.ycx;

    drop table petra.ycx

    *

    ERROR on line 1:

    ORA-00054: resource busy and acquire with NOWAIT specified

    SQL > select count (*) in the petra.ycx;

    COUNT (*)

    ----------

    2

    SQL > select a.sid, a.serial # session $ v a, v$ locked_object b, c dba_objects

    2 where b.object_id = c.object_id

    3 and a.sid = b.session_id and OBJECT_NAME = 'YCX. "

    SID, SERIAL #.

    ---------- ----------

    11 159

    SQL > alter system kill session 11 159;

    alter system kill session 11 159

    *

    ERROR on line 1:

    ORA-00026: missing or not valid session ID

    The command is

    alter system kill session '159,11';
    

    Justin

  • How to remove the table raster?

    Hi man raster.

    I use the drop table command to remove georaster and raster table, like this:
    drop table city_images; / * drop table georaster * /.
    drop table city_images_rdt; / * drop table raster * /.
    and then I create the same table, but I can't import raster data to georaster.
    I use drop table command right?

    Best regards
    qlin

    for the names of georaster tables, it's OK. but for RTD names, each name RTD must be unique across the entire database. so this could be the cause of the error mesg if you had two identical names of RTD in different schemas.

Maybe you are looking for

  • opting for iMac for Logic Pro Tips?

    I use a Macbook Pro 2.8 retina i7 Quad Core, 512 memory flash and 16gbRAM + tech G 7200 RPM external drives with a bolt of lightning 27 ". No problem when using logical Prox I am considering getting a new 27 "iMac 17 Quad core maxed, 32gbRAM am too,

  • Change graphics on the Satellite C660-10F

    Hello can someone tell me if it is possible to install a Geforce 7000 or a Mod of Shader ist series. 2.0 (reqiured for game-software - 3D - my son got for a gift) or ATI Radeon: 5xxx Series (512 MB VRAm) in a book of satellite C660-10 E. Thank you -

  • Beri face para ideapad s400

    Hola quiero saber y alguien m could desire such an el ideapad s400 is can put el bery face of lenovo tengo windows operating system 8 donde puedo descargarlo as sirva el windows 8?

  • Reference Dell 2700W UPS with the abandoned battery status

    I have several devices UPS 2700W Dell with a network management card. Some of them are now showing State of battery abandoned in the web INTERFACE, but the status is ok. When multiple verification of the State through the Dell UPS tools is shown as t

  • To pick up on the details of the user of the session in IOM

    Hi Experts,We have few admin users who have exclusive permission to run a particular scheduler. Now this scheduler should run to only users belonging to organizations or agencies sup of the admin user who has run. The requirement is to find the detai