Translate into your own language

Tuesday, May 10, 2016

Basic concept of parallelism in SQL tuning

Parallelism can help improve performance on particular operations simply by assigning multiple resources to a task. Parallelism is best used on systems with multiple CPUs, as the multiple processes used (that is, the parallel processes) will use those extra CPU resources to more quickly complete a given task.

As a general rule, parallelism is also best used on large tables or indexes, and on databases with large volumes of data. It is ideal for use in data warehouse environments, which are large by their nature. Parallelism is not well suited for OLTP environments, just because of the transnational nature of those systems.

In order to use parallelism properly, there are several important factors to understand:


  • The number of CPUs on your system
  •  Proper configuration of the related initialization parameters
  • The key SQL statements that you want to tune for parallelization
  • The degree of parallelism (DOP) configured on your database
  • The actual performance vs. expected performance of targeted SQL operations


One of the most common pitfalls of parallelism is overuse. It is sometimes seen as a magic bullet to tune and speed up SQL operations. In turn, parallelism can actually lead to poorer rather than better performance. Therefore, it is critically important for the DBA to understand the physical configuration of his or her system, and configure parallelism-related parameters to best suit the system. Educating developers and users of your database about basic questions will increase the success rate of parallel operations. When is it appropriate to use parallelism? How do you properly enable parallelism in SQL operations? What type of operations can be parallelized? Parallelism is a powerful tool to aid in drastically improving performance of database operations, but with that power comes responsibility.

No comments:

Post a Comment