Patent ID: 8041707

Claim:
A database management system for managing a database, comprising: a query interface for receiving a query to said database; a query plan generator connected with said query interface for generating a query plan from said received query, said generated query plan comprising a plurality of database operations necessary for execution of said received query; and a query executor connected with said database and said query plan generator for executing said received query in accordance with said generated query plan, wherein said query executor: executes the following steps for executing said received query: (A) a step of generating a task for executing a database operation associated to said task and starting to execute said generated task, (B) a step of issuing a data read request to a storage device storing said database to read data necessary for executing said database operation in executing said generated task, (C) when a plurality of tasks can be generated, in accordance with a result of execution of said database operation, for a next database operation which is necessary for executing said received query, a step of generating said plurality of tasks in accordance with said result of execution of said database operation, and (D) a step of further executing steps (B) and (C) for each of said plurality of generated tasks; in generating said task in step (A), if the number of presently existing tasks in a certain predetermined state reaches or exceeds a predetermined number, suspends generation of said task and thereafter resumes generation of said task if the number of presently existing tasks in said predetermined state becomes smaller than said predetermined number; in generating one of said plurality of tasks in step (C), if the number of presently existing tasks in said predetermined state reaches or exceeds said predetermined number, suspends generation of said one of said plurality of tasks and thereafter resumes generation of said one of said plurality of tasks if the number of presently existing tasks in said predetermined state becomes smaller than said predetermined number; and upon completion of data read of said data read request issued by said generated task in step (B), executes said database operation associated to said generated task with said read data for said generated task and thereafter eliminates said generated task, whereby parallel processing of said generated tasks for said received query is performed.