管理并行SQL执行的进程

摘要:
本节中描述的并行执行功能可用于Oracle数据库企业版。本节介绍如何管理SQL语句的并行处理。Oracle数据库可以将处理SQL语句的工作划分为多个并行过程。创建或更改对象时使用的PARALLEL子句。insert语句中的并行提示是数据库确定的默认值。关于服务器更改会话的并行执行。关于并行提示的使用。本书中讨论的主题是,在整个执行阶段,并行服务器进程仍然与语句相关联。

本节介绍的并行执行功能可用于Oracle数据库企业版

本节介绍如何管理SQL语句的并行处理。在此配置中,Oracle数据库可以将处理SQL语句的工作分为多个并行进程。

许多SQL语句的执行可以并行化。并行度是可以与单个操作相关联的并行执行服务器的数量。并行度由以下任何因素决定:

  •  声明中的PARALLEL子句
  • 对于查询中引用的对象,创建或更改对象时使用的PARALLEL子句
  • 插入语句中的并行提示
  • 由数据库确定的默认值

并行化表创建”中包含使用并行SQL执行的示例。

 本节包含以下主题:

  • 关于并行执行服务器
  • 更改会话的并行执行

有关使用并行提示的信息,请参阅“Oracle数据库性能调整指南

 关于并行执行服务器


实例启动时,Oracle数据库将创建一个并行执行服务器池,可用于任何并行操作。称为并行执行协调器的进程调度并行执行服务器池的执行,并协调从所有这些并行执行服务器向用户发回结果。

并行执行服务器默认启用,因为默认情况下,PARALLEL_MAX_SERVERS初始化参数的值设置为> 0。这些进程可供各种可利用并行性的Oracle数据库功能使用。相关的初始化参数由数据库为大多数用户调整,但您可以根据需要更改它们以适合您的环境。为了便于调整,一些参数可以动态改变。

并行性可用于多种功能,包括事务恢复,复制和SQL执行。在执行并行SQL的情况下,本书中讨论的主题并行服务器进程在整个执行阶段仍然与语句相关联。当完整处理语句时,这些进程可用于处理其他语句。

Oracle数据库VLDB和分区指南获取有关使用并行执行的更多信息

更改会话的并行执行


您可以使用ALTER SESSION语句控制会话的并行SQL执行。

禁用并行SQL执行

使用ALTER SESSION DISABLE PARALLEL DML | DDL | QUERY语句禁用并行SQL执行。在发布这样的语句后,所有后续的DML(INSERT,UPDATE,DELETE),DDL(CREATE,ALTER)或者查询(SELECT)操作都会连续执行。它们将被连续执行,而不管与所涉及的表或索引有关的任何并行属性。但是,带有PARALLEL提示的语句会覆盖会话设置

以下语句禁用并行DDL操作:

ALTER SESSION DISABLE PARALLEL DDL;

启用并行SQL执行

使用ALTER SESSION ENABLE PARALLEL DML | DDL | QUERY语句启用并行SQL执行。随后,当PARALLEL子句或并行提示与语句关联时,那些DML,DDL或查询语句将并行执行。默认情况下,为DDL和查询语句启用并行执行。

只有在您特别发出ALTER SESSION语句以启用并行DML时,才能对DML语句进行并行处理:

ALTER SESSION ENABLE PARALLEL DML;

强制并行SQL执行

您可以使用ALTER SESSION FORCE PARALLEL DML | DDL | QUERY语句强制执行并行执行的所有后续DML,DDL或查询语句。此外,您可以强制执行特定程度的并行性,从而覆盖与后续语句关联的任何PARALLEL子句。如果您在此声明中没有指定一定的并行度,则使用默认的并行度。强制并行执行将覆盖SQL语句中的任何并行提示。

以下语句强制后续语句的并行执行,并将最重要的并行度设置为5:

ALTER SESSION FORCE PARALLEL DDL PARALLEL 5;

参考资料


https://docs.oracle.com/cd/E11882_01/server.112/e25494/manproc.htm#ADMIN11186

免责声明:文章转载自《管理并行SQL执行的进程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇enum class的基于namespace的实现PHP手动搭建环境下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle不同用户间访问表不添加用户名(模式)前缀

默认的情况下,oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 user表,需要这样访问 select * from B.user;如果想要不添加用户前缀,需要这样处理:(user01 就是A用户)1.用视图  create view user select * from B.user;2.使用同义词:grant CREATE...

Django——缓存机制

一、缓存介绍 缓存就是将常用的一些数据保存在内存或者们擦车中,在一定时间内,如果有请求访问这些数据的时候,则不用去服务器操作数据库渲染,直接缓存中获取,节约时间,增加访问速度,环节服务器压力 二、Django中的6种缓存方式 开发调试缓存 内存缓存 文件缓存 数据库缓存 Memcache缓存 Memcache缓存 三、Django缓存配置 1.2.1...

宝塔面板SSpanel-v3-mod安装教程 搭建sspanel v3魔改前端

教程演示环境及工具准备: vultr家的主机 【新用户注册可获取50美金】 CentOS 7X64 【每月5美元,无限流量】 ssh工具:xshell点击下载 连接VPS,开始安装宝塔面板 centos yum install -y wget && wget -O install.sh http://download.bt.cn/in...

MySQL用户权限验证与管理方法详解

本文实例讲述了MySQL用户权限验证与管理方法。分享给大家供大家参考,具体如下: 一、Mysql权限分两阶段验证 1. 服务器检查是否允许连接:用户名、密码,主机地址。 2. 检查每一个请求是否有权限实施。 二、Mysql权限列表 权限 权限级别 权限说明 create 数据库、表或索引 创建数据库、表或索引权限 drop 数据库或表 删除数据...

测试人员需要了解的sql知识(基础篇)

这是第一篇关于数据库的,本着详细的原则,基础的还是不能放过,还是那句话,有问题,欢迎指出! -------------------------------------------------------------自然的分割线------------------------------------------------------------------...

部署Qualitis

Qualitis是一个支持多种异构数据源的质量校验、通知、管理服务的数据质量管理平台,用于解决业务系统运行、数据中心建设及数据治理过程中的各种数据质量问题。 Qualitis基于Spring Boot,依赖于Linkis进行数据计算,提供数据质量模型构建,数据质量模型执行,数据质量任务管理,异常数据发现保存以及数据质量报表生成等功能。并提供了金融级数据质量...