You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Peter Vary (Jira)" <ji...@apache.org> on 2021/09/30 12:49:00 UTC

[jira] [Created] (HIVE-25580) Increase the performance of getTableColumnStatistics and getPartitionColumnStatistics

Peter Vary created HIVE-25580:
---------------------------------

             Summary: Increase the performance of getTableColumnStatistics and getPartitionColumnStatistics
                 Key: HIVE-25580
                 URL: https://issues.apache.org/jira/browse/HIVE-25580
             Project: Hive
          Issue Type: Improvement
          Components: Standalone Metastore
            Reporter: Peter Vary
            Assignee: Peter Vary


When the PART_COL_STATS table contains high number of rows the getTableColumnStatistics and getPartitionColumnStatistics response time increases.

The root cause is the full table scan for the jdbc query below:
{code:java}
2021-09-27 13:22:44,218 DEBUG DataNucleus.Datastore.Native: [pool-6-thread-199]: SELECT DISTINCT "A0"."ENGINE" FROM "PART_COL_STATS" "A0"
2021-09-27 13:22:50,569 DEBUG DataNucleus.Datastore.Retrieve: [pool-6-thread-199]: Execution Time = 6351 ms {code}

The time spent in [here|https://github.com/apache/hive/blob/ed1882ef569f8d00317597c269cfae35ace5a5fa/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java#L9965]:
{code:java}
      query = pm.newQuery(MPartitionColumnStatistics.class);
      query.setResult("DISTINCT engine");
      Collection names = (Collection) query.execute();
{code}

We might get a better performance if we limit the query range based on the cat/db/table.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)