Re: Query Performance Issue

  • From: Rakesh Ra <rakeshra.tr@xxxxxxxxx>
  • To: Oracle-L Freelists <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 23 Apr 2019 17:44:43 +0530

Sorry again...

Missed to give the the execution plan.

Plan hash value: 1838219834

---------------------------------------------------------------------------------------------------
| Id  | Operation                        | Name           | Rows  | Bytes |
Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                 |                |       |
 |   774 (100)|          |
|   1 |  SORT AGGREGATE                  |                |     1 |    68
|            |          |
|   2 |   VIEW                           | VW_DAG_0       |   318 | 21624
|   774   (1)| 00:00:10 |
|   3 |    HASH GROUP BY                 |                |   318 | 33708
|   774   (1)| 00:00:10 |
|   4 |     NESTED LOOPS                 |                |   318 | 33708
|   773   (0)| 00:00:10 |
|   5 |      NESTED LOOPS                |                |   318 | 33708
|   773   (0)| 00:00:10 |
|*  6 |       TABLE ACCESS BY INDEX ROWID| USER_GROUP     |   318 | 22260
|   137   (0)| 00:00:02 |
|*  7 |        INDEX RANGE SCAN          | UG_FK_GROUPKEY |   635 |
 |    10   (0)| 00:00:01 |
|*  8 |       INDEX UNIQUE SCAN          | XPKUSER        |     1 |
 |     1   (0)| 00:00:01 |
|*  9 |      TABLE ACCESS BY INDEX ROWID | USERS          |     1 |    36
|     2   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   6 - filter(NVL("UG"."DELETE_FLAG",'N')=:SYS_B_0)
   7 - access("UG"."GROUP_TREE_KEY"=:1)
   8 - access("U"."USER_KEY"="UG"."USER_KEY")
   9 - filter(NVL("U"."DELETE_FLAG",'N')=:SYS_B_1)


On Tue, Apr 23, 2019 at 5:40 PM Rakesh Ra <rakeshra.tr@xxxxxxxxx> wrote:

BTW forgot to mention that the database is of version 11.2.0.4.1 running
on OEL 6.3.

Thanks,
Rakesh RA

On Tue, Apr 23, 2019 at 5:38 PM Rakesh Ra <rakeshra.tr@xxxxxxxxx> wrote:

Hi All,

I have a query where in application has a read timeout set for 20
seconds.


SELECT COUNT (DISTINCT U.USER_KEY) FROM TMS.USERS U JOIN
TMS.USER_GROUP UG ON U.USER_KEY = UG.USER_KEY WHERE
UG.GROUP_TREE_KEY = 'ia744d7790000015b347a4749dd5889b8' and
UG.delete_flag ='N' and U.delete_flag ='N';

With most bind values of group_tree_key the query runs within 20 seconds.
But with GROUP_TREE_KEY having more number of records in TMS.USER_GROUP the
query runs for more than 20 seconds and then application fails with "Socket
Read Timeout".

Below are few details related to table stats and column stats. There is
huge skewness in data for GROUP_TREE_KEY for the table TMS.USER_GROUP. I
tried to collect the column stats for the table TMS.USER_GROUP  for the
column GROUP_TREE_KEY but that didn't have much effect. Is there any way we
can optimize the query to have a better run time?


TMS.USER_GROUP DETAILS
==========================

OWNER                          TABLE_NAME
 LAST_ANALYZED                   NUM_ROWS
------------------------------ ------------------------------
----------------------------- ----------
TMS                       USER_GROUP                     01-FEB-2019
23:21:25            55479760



OWNER                          TABLE_NAME
 COLUMN_NAME                    NUM_DISTINCT NUM_BUCKETS HISTOGRAM
------------------------------ ------------------------------
------------------------------ ------------ ----------- ---------------
TMS                       USER_GROUP
 UPDATED_TIMESTAMP                   2851921           1 NONE
TMS                       USER_GROUP                     STOP_DATE
                      4166           1 NONE
TMS                       USER_GROUP                     START_DATE
                       3301           1 NONE
TMS                       USER_GROUP                     GROUP_TREE_KEY
                      87351           1 NONE
TMS                       USER_GROUP                     USER_KEY
                    2112700           1 NONE
TMS                       USER_GROUP                     DELETE_FLAG
                         2           1 NONE




TABLE_NAME                  COLUMN_NAME                 INDEX_NAME
                   COLUMN_POSITION
--------------------------- ---------------------------
------------------------------------ ---------------
USER_GROUP                  USER_KEY                    XPKUSER_GROUP
                                  1
USER_GROUP                  GROUP_TREE_KEY              XPKUSER_GROUP
                                  2
USER_GROUP                  START_DATE                  XPKUSER_GROUP
                                  3
USER_GROUP                  STOP_DATE                   XPKUSER_GROUP
                                  4
USER_GROUP                  GROUP_TREE_KEY              UG_FK_GROUPKEY
                                 1
USER_GROUP                  USER_KEY                    UG_USER_KEY
                                  1
USER_GROUP                  UPDATED_TIMESTAMP           USER_GROUP_IDX
                                 1

7 rows selected.


OWNER                          INDEX_NAME
 LAST_ANALYZED                   NUM_ROWS   NUM_ROWS CLUSTERING_FACTOR
------------------------------ ------------------------------------
----------------------------- ---------- ---------- -----------------
TMS                       XPKUSER_GROUP
01-FEB-2019 23:23:32            55821380   55821380          50385340
TMS                       UG_FK_GROUPKEY
 01-FEB-2019 23:24:36            56195400   56195400          11056540
TMS                       UG_USER_KEY
01-FEB-2019 23:25:55            55064620   55064620          45906520
TMS                       USER_GROUP_IDX
 01-FEB-2019 23:26:54            55041170   55041170          15547360



TMS.USERS DETAILS
==================

OWNER                          TABLE_NAME                  LAST_ANALYZED
                 NUM_ROWS
------------------------------ ---------------------------
----------------------------- ----------
TMS                       USERS                       16-APR-2019
23:23:18             4093040


OWNER                          TABLE_NAME                  COLUMN_NAME
             NUM_DISTINCT NUM_BUCKETS HISTOGRAM
------------------------------ ---------------------------
--------------------------- ------------ ----------- ---------------
TMS                       USERS                       ENCRYPTED_PASSWORD
                   0           0 NONE
TMS                       USERS                       DISABLE_GRP_IPR
                    1           1 NONE
TMS                       USERS                       NEW_USER
                   2           1 NONE
TMS                       USERS                       IP_RESTRICTED
                    1           1 NONE
TMS                       USERS                       REASON_CODE_KEY
                    4           1 NONE
TMS                       USERS                       LOGIN_LIMIT
                    3           1 NONE
TMS                       USERS                       SHARED
                   1           1 NONE
TMS                       USERS                       USER_PWD_CLUE
                    0           0 NONE
TMS                       USERS                       STOP_DATE
               111803           1 NONE
TMS                       USERS                       START_DATE
              289426           1 NONE
TMS                       USERS                       INACTIVE_STATE
                   1           1 NONE
TMS                       USERS                       DOMAIN_KEY
                   1           1 NONE
TMS                       USERS                       FAILED_LOGIN_CNT
                  52           1 NONE
TMS                       USERS                       PWD_EXPIRED
                    1           1 NONE
TMS                       USERS                       USER_GUID
              4093040           1 NONE
TMS                       USERS                       USER_CREATE_DATE
              426536           1 NONE
TMS                       USERS                       USER_LASTMOD_DATE
               596781           1 NONE
TMS                       USERS                       USER_PWD_RESPONSE
                    0           0 NONE
TMS                       USERS                       USER_PWD_CHALLENGE
                   0           0 NONE
TMS                       USERS                       USER_EMAIL
               26162           1 NONE
TMS                       USERS                       USER_ID
              4093040           1 NONE
TMS                       USERS                       USER_PASSWORD
              2479152           1 NONE
TMS                       USERS                       USER_MIDDLE_NAME
                   0           0 NONE
TMS                       USERS                       USER_FIRST_NAME
                11933           1 NONE
TMS                       USERS                       USER_LAST_NAME
               33227           1 NONE
TMS                       USERS                       USER_KEY
             4093040           1 NONE
TMS                       USERS                       DELETE_FLAG
                    2           1 NONE
TMS                       USERS                       SYS_NC00027$
                1000           1 NONE


TABLE_NAME                  COLUMN_NAME                 INDEX_NAME
                   COLUMN_POSITION
--------------------------- ---------------------------
------------------------------------ ---------------
USERS                       USER_KEY                    XPKUSER
                                  1
USERS                       USER_GUID
 PSU_USER_GUID_IDX                                  1
USERS                       USER_ID
 PSU_USER_ID_DOM_UQ_IDX                             1
USERS                       DOMAIN_KEY
PSU_USER_ID_DOM_UQ_IDX                             2
USERS                       DOMAIN_KEY                  PSU_DKEY_EMAIL
                                 1
USERS                       USER_EMAIL                  PSU_DKEY_EMAIL
                                 2
USERS                       INACTIVE_STATE
PSU_INACTIVE_STATE                                 1
USERS                       REASON_CODE_KEY             XIF5USER
                                 1
USERS                       SYS_NC00027$                MOD_IDX
                                  1

9 rows selected.

OWNER                          INDEX_NAME
 LAST_ANALYZED                   NUM_ROWS   NUM_ROWS CLUSTERING_FACTOR
------------------------------ ------------------------------------
----------------------------- ---------- ---------- -----------------
TMS                       XPKUSER
16-APR-2019 23:23:18             4237790    4237790           1774550
TMS                       PSU_USER_GUID_IDX
16-APR-2019 23:23:19             4001180    4001180           1689690
TMS                       PSU_USER_ID_DOM_UQ_IDX
 16-APR-2019 23:23:19             3900400    3900400           1994620
TMS                       PSU_DKEY_EMAIL
 16-APR-2019 23:23:27             4268590    4268590            275130
TMS                       PSU_INACTIVE_STATE
 16-APR-2019 23:23:27                8694       8694              6123
TMS                       XIF5USER
 16-APR-2019 23:23:27                8840       8840              6337
TMS                       MOD_IDX
16-APR-2019 23:23:31             3972540    3972540           3902610


I understand all details are not supplied however, I am ready to get that
if asked for.,

Thanks,
Rakesh RA



Other related posts: