Home » RDBMS Server » Performance Tuning » Full Table Scan
Full Table Scan [message #132042] |
Wed, 10 August 2005 09:02 |
puneetsachar
Messages: 97 Registered: March 2005 Location: New Delhi, India
|
Member |
|
|
Hi I have one SQL qurery and infact 7 same SQL Query Like this aswell and the problem is the query is taking FULL table Scan
INSERT INTO load_pdr_group (
business_org
, baes_site
, emp_cat
, baes_grade
, baes_job_code
, baes_exec_marker
, employee_catg
, yesno
, baes_overtime_paid
, baes_pdr_group
, pdr_group_id
)
SELECT x.business_org
, x.baes_site
, x.emp_cat
, x.baes_grade
, x.baes_job_code
, x.baes_exec_marker
, x.employee_catg
, x.yesno
, x.baes_overtime_paid
, x.baes_pdr_group
, x.pdr_group_id
FROM (SELECT apg.business_org
, apg.baes_site
, apg.emp_cat
, apg.baes_grade
, apg.baes_job_code
, apg.baes_exec_marker
, apg.employee_catg
, apg.yesno
, apg.baes_overtime_paid
, apg.baes_pdr_group
, apg.pdr_group_id
, NVL(apg.exception,'X') exception
, NVL(apg.deleted, 'X') deleted
, MAX(apg.pdr_group_id)
OVER (PARTITION BY apg.business_org
, apg.baes_site
, apg.emp_cat
, apg.baes_grade
, apg.baes_job_code
, apg.baes_exec_marker
, apg.employee_catg
, apg.yesno
, apg.baes_overtime_paid
, apg.baes_pdr_group
, apg.pdr_group_id) max_pdr_group_id
FROM audit_pdr_group apg) x
WHERE x.pdr_group_id = x.max_pdr_group_id
AND x.exception != 'Y'
AND x.deleted != 'Y'
I have Primary key on the pdr_group_id
Tell me what all index I will make on this.. so that I'm able to Use Index
My DB is 8.1.7.4
Please help me....
Puneet Sachar
|
|
|
|
Re: Full Table Scan [message #132078 is a reply to message #132042] |
Wed, 10 August 2005 14:20 |
Art Metzer
Messages: 2480 Registered: December 2002
|
Senior Member |
|
|
Ah, I remember you.
How long does the INSERT take to run now?
Like Mahesh Rajendran suggests, sometimes a full table scan is the fastest, most efficient path to the data.
Just out of curiosity, what are the results of the following queries?SET NULL [NULL]
SELECT apg.exception
, COUNT(*)
FROM audit_pdr_group apg
GROUP BY apg.exception
ORDER BY apg.exception
/
SELECT apg.deleted
, COUNT(*)
FROM audit_pdr_group apg
GROUP BY apg.deleted
ORDER BY apg.deleted
/
|
|
|
Re: Full Table Scan [message #132162 is a reply to message #132078] |
Thu, 11 August 2005 03:35 |
puneetsachar
Messages: 97 Registered: March 2005 Location: New Delhi, India
|
Member |
|
|
Yeah, its same your quesry...
but I'm not geting the same data means.. might be missing something in it..
But this quesry have give me chnace to look more in table scan issue which I know i can never understand.. don
't know why
Anyways u have asked the to run two query here is the answer
SELECT apg.exception
, COUNT(*)
FROM audit_pdr_group apg
GROUP BY apg.exception
ORDER BY apg.exception
---> Exception Count(*)
--------------- ------------
Y 44656
NULL 1916626
(FULL TABLE ACCESS)
OPTIMISER MODE = CHOOSE
(2) SELECT apg.deleted
, COUNT(*)
FROM audit_pdr_group apg
GROUP BY apg.deleted
ORDER BY apg.deleted
---> DELETED Count(*)
--------------- ------------
Y 581259
NULL 1380023
FULL TABLE ACCESS)
OPTIMISER MODE = CHOOSE
|
|
|
Goto Forum:
Current Time: Sat Nov 23 16:29:08 CST 2024
|