首页 > 数据库 > Oracle > 什么是Granule
In parallel execution, a table is divided dynamically into load units. Each unit, called a granule, is the smallest unit of work when accessing data. A block-based granule is a range of data blocks of the table read by a single parallel execution server (also called a PX server), which uses Pnnn as a name format. To obtain an even distribution of work among parallel server processes, the number of granules is always much higher than the requested DOP.
在并行执行的过程中,一个表被动态的分解成读取单元,每一个单元,称为一个granule,是一个最小的数据访问单位.一个基于数据块的granule是一定范围内的数据库通过单一的并且执行服务所读取.每一个并行读取的服务都以Pnnn来作为命名规范.为了获得尽可能平均的分布式读取方式,granules的数据一般高于请求的DOP (degree of parallelism)

The database maps granules to parallel execution servers at execution time. When a parallel execution server finishes reading the rows corresponding to a granule, and when granules remain, it obtains another granule from the query coordinator. This operation continues until the table has been read. The execution servers send results back to the coordinator, which assembles the pieces into the desired full table scan.
数据库会分配granules到每一个并行执行的服务.当一个并行执行服务完成的数据读取的时候,如果granule还有剩余,则这个并行服务程序还会获得其余的granule,直到表被读取完成,然后执行进程会发送结果给协调进程并且合并所有的granule到一个完整的表
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8747612/viewspace-1966040/ ,如需转载,请注明出处,否则将追究法律责任。