zach14c

Untitled

Nov 28th, 2018
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.50 KB | None | 0 0
  1.  
  2.    
  3. Counting Rows
  4. BY Jonathan Lewis
  5. Here's another little utility I use from time to time (usually for small tables) to check how many rows there are in each block of the table, and which blocks are used. It doesn't DO anything clever, just call routines IN the DBMS_ROWID PACKAGE FOR each ROWID IN the TABLE:
  6.  
  7.  
  8. rem
  9. rem     Rowid_count.SQL
  10. rem     Generic code TO COUNT rows per block IN a TABLE
  11. rem     Ordered BY file AND block
  12. rem
  13.  
  14. define m_table = '&1'
  15.  
  16. spool rowid_count
  17.  
  18. SELECT
  19.         DBMS_ROWID.rowid_relative_fno(ROWID)    rel_file_no,
  20.         DBMS_ROWID.rowid_block_number(ROWID)    block_no,
  21.         COUNT(*)                                rows_starting_in_block
  22. FROM
  23.         &m_table        t1
  24. GROUP BY
  25.         DBMS_ROWID.rowid_relative_fno(ROWID),
  26.         DBMS_ROWID.rowid_block_number(ROWID)
  27. ORDER BY
  28.         DBMS_ROWID.rowid_relative_fno(ROWID),
  29.         DBMS_ROWID.rowid_block_number(ROWID)
  30. ;
  31.  
  32.  
  33. SELECT
  34.         rows_starting_in_block,
  35.         COUNT(*)        blocks
  36. FROM
  37.         (
  38.         SELECT
  39.                 DBMS_ROWID.rowid_relative_fno(ROWID),
  40.                 DBMS_ROWID.rowid_block_number(ROWID),
  41.                 COUNT(*)                                rows_starting_in_block
  42.         FROM
  43.                 &m_table        t1
  44.         GROUP BY
  45.                 DBMS_ROWID.rowid_relative_fno(ROWID),
  46.                 DBMS_ROWID.rowid_block_number(ROWID)
  47.         )
  48. GROUP BY
  49.         rows_starting_in_block
  50. ORDER BY
  51.         rows_starting_in_block
  52. ;
  53.  
  54. spool off
Advertisement