[
https://issues.apache.org/jira/browse/HIVE-22888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Denys Kuzmenko updated HIVE-22888:
----------------------------------
Description:
- Created extra (db, tbl, part) index on HIVE_LOCKS table;
- Replaced inner select under checkLocks using multiple IN statements with JOIN
operator;
generated query looks like :
{code}
SELECT LS.* FROM (
SELECT HL_LOCK_EXT_ID, HL_LOCK_INT_ID, HL_DB, HL_TABLE, HL_PARTITION,
HL_LOCK_STATE, HL_LOCK_TYPE, HL_TXNID FROM HIVE_LOCKS
WHERE HL_LOCK_EXT_ID < 12143) LS
LEFT JOIN (
SELECT HL_DB, HL_TABLE, HL_PARTITION FROM HIVE_LOCKS WHERE HL_LOCK_EXT_ID =
12143) LBC
ON LS.HL_DB = LBC.HL_DB
AND LS.HL_TABLE = LBC.HL_TABLE
AND LS.HL_PARTITION = LBC.HL_PARTITION
WHERE LS.HL_DB = LBC.HL_DB
AND (LS.HL_TABLE IS NULL
OR (LBC.HL_TABLE IS NOT NULL AND (LS.HL_PARTITION IS NULL OR
LBC.HL_PARTITION IS NOT NULL))]
{code}
was:
- Created extra (db, tbl, part) index on HIVE_LOCKS table;
- Replaced inner select under checkLocks using multiple IN statements with JOIN
operator;
generated query looks like :
{code}
SELECT LS.* FROM (
SELECT HL_LOCK_EXT_ID, HL_LOCK_INT_ID, HL_DB, HL_TABLE, HL_PARTITION,
HL_LOCK_STATE, HL_LOCK_TYPE, HL_TXNID FROM HIVE_LOCKS
WHERE HL_LOCK_EXT_ID < 12143) LS
LEFT JOIN (
SELECT HL_DB, HL_TABLE, HL_PARTITION FROM HIVE_LOCKS WHERE HL_LOCK_EXT_ID =
12143) LBC
ON LS.HL_DB = LBC.HL_DB
AND LS.HL_TABLE = LBC.HL_TABLE
AND LS.HL_PARTITION = LBC.HL_PARTITION
WHERE LS.HL_DB = LBC.HL_DB
AND (LS.HL_TABLE IS NULL
OR (LBC.HL_TABLE IS NOT NULL) AND (LS.HL_PARTITION IS NULL OR
LBC.HL_PARTITION IS NOT NULL))]
{code}
> Rewrite checkLock inner select with JOIN operator
> -------------------------------------------------
>
> Key: HIVE-22888
> URL: https://issues.apache.org/jira/browse/HIVE-22888
> Project: Hive
> Issue Type: Improvement
> Components: Locking
> Reporter: Denys Kuzmenko
> Assignee: Denys Kuzmenko
> Priority: Major
> Attachments: HIVE-22888.1.patch, HIVE-22888.2.patch
>
>
> - Created extra (db, tbl, part) index on HIVE_LOCKS table;
> - Replaced inner select under checkLocks using multiple IN statements with
> JOIN operator;
> generated query looks like :
> {code}
> SELECT LS.* FROM (
> SELECT HL_LOCK_EXT_ID, HL_LOCK_INT_ID, HL_DB, HL_TABLE, HL_PARTITION,
> HL_LOCK_STATE, HL_LOCK_TYPE, HL_TXNID FROM HIVE_LOCKS
> WHERE HL_LOCK_EXT_ID < 12143) LS
> LEFT JOIN (
> SELECT HL_DB, HL_TABLE, HL_PARTITION FROM HIVE_LOCKS WHERE HL_LOCK_EXT_ID
> = 12143) LBC
> ON LS.HL_DB = LBC.HL_DB
> AND LS.HL_TABLE = LBC.HL_TABLE
> AND LS.HL_PARTITION = LBC.HL_PARTITION
> WHERE LS.HL_DB = LBC.HL_DB
> AND (LS.HL_TABLE IS NULL
> OR (LBC.HL_TABLE IS NOT NULL AND (LS.HL_PARTITION IS NULL OR
> LBC.HL_PARTITION IS NOT NULL))]
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)