Browse Prior Art Database

Parallel insert dynamically depending on the SMAP

IP.com Disclosure Number: IPCOM000241467D
Publication Date: 2015-May-04
Document File: 3 page(s) / 193K

Publishing Venue

The IP.com Prior Art Database

Abstract

Currently, database insert does not have parallel as select. Usually, the insert record comes one by one, but for the insert with sub-select, even the result is a set as input for the insert. Database would get the result set and do the insert sequentially. For some of the sub-select, database could get benefit by the parallel insert. With the cost module, we could get the select parallel, for each task, the task manager would execute the query tasks. Our idea is that database could execute insert parallel depending on the SMAP (space map page). It is natural that we could execute the insert parallel in this situation to reduce the lock and latch contention. It is obvious that we could get benefit by parallel insert.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 59% of the total text.

Page 01 of 3

Parallel insert dynamically depending on the SMAP

Currently, database insert does not have parallel as select. Usually, the insert record comes one by one, but for the insert with sub-select, even the result is a set as input for the insert. Database would get the result set and do the insert sequentially.

For some of the sub-select, database could get benefit by the parallel insert. With the cost module, we could get the select parallel, for each task, the task manager would execute the query tasks. Our idea is that database could execute insert parallel depending on the SMAP. It is natural that we could execute the insert parallel in this situation to reduce the lock and latch contention. It is obvious that we could get benefit by parallel insert.

Our purpose Currently, we have SELECT parallel, and we could also apply the parallel insert for each task. We could check the following example:

INSERT INTO Target T (SELECT *
FROM T1
WHERE C1 = ?)

Our purpose is to reduce the contention on the locks and latch contentions. We would like to introduce a new method to divide the task. The tasks are divided by SMAP ordered by primary index.

1



Page 02 of 3

For this kind of query, we could refer to the following process.


1. Decide the tasks number for parallel


The number of the tasks would be decided by the IO ability, CPU ability and also CPU number. If there is hint, optimizer would try to following the hint.


2. Divide the task basing on the statistics


Statistics could hel...