我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL中pq_distribute怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL中pq_distribute怎么用

这篇文章主要介绍SQL中pq_distribute怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

pq_distribute提示通常被用于提升数据仓库中分区表间的连接操作性能。 pq_distribute提示允许你确定参与连接的表数据行在生产和消费并行查询服务进程间如何分配。 pq_distribute提示接受三个参数:表名,外分配和内分配。

当执行并行查询连接时,我们总是想着避免PARALLEL_TO_PARALLEL执行计划。PARALLEL_TO_PARALLEL操作意味着输入输出数据流都是并行的,导致连接性能低下。另一方面,PARALLEL_COMBINED_WITH_PARENT操作意味着将排序和合并操作组合进一个操作。

使用pq_distribute提示前,有些Oracle DBA通常通过删除内部表的CBO统计信息来欺骗SQL优化器,以强制采用PARALLEL_COMBINED_WITH_PARENT操作。因为SQL优化器根据这些CBO统计信息来评估候选广播表的大小。当表大于某个阈值时,表将通过PARALLEL_TO_PARALLEL 执行模式连接,这将导致很低的性能。

pq_distribute提示可以接受六个参数组合 。记住,参数顺序是外分配在前,内分配在后。

1) 、pq_distribute(tab_name, hash,hash):该组合将表数据行通过连接键上的哈希函数分配给消费并行查询服务进程。完成映射后,每个查询服务进程在一对结果分区间进行连接。当表大小相当且通过哈希或排序合并实现连接操作时,推荐使用该提示。

2) 、pq_distribute(tab_name,broadcast, none):该组合确保外表所有数据行被广播到每个消费并行服务进程,同时,内表数据行被随机分区。当外表比内表小很多时,推荐使用该提示。一个重要原则是,如果内表大小乘以并行服务进程数大于外表大小,则使用broadcast/none。

3) 、pq_distribute(tab_name, none,broadcast):该组合强制内表所有的数据行广播给每个消费并行查询服务进程,同时,外表数据行被随机分区。当内表比外表小时,推荐使用该提示。一个重要原则是,当内表大小乘以并行查询服务进程数小于外表大小时,推荐使用none/broadcase提示。

4)、pq_distribute(tab_name,partition, none):该组合通过内表分区来映射外表数据行,同时,内表必须按连接键分区。当内表分区数等于或接近并行查询服务进程数时,推荐使用该提示。

5)、pq_distribute(tab_name, none,partition):该组合通过外表分区来映射内表数据行,同时,外表必须按分区键分区。当外表分区数等于或接近并行查询服务进程数时,推荐使用该组合。

6) 、pq_distribute(tab_name, none,none):该组合中,每个并行查询服务器在一对匹配的分区间进行连接操作,每个分区来自一张表。两张表在连接键上必须分区相等。

以上是“SQL中pq_distribute怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL中pq_distribute怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql中reference怎么用

sql 中的 reference 关键字用于定义外键约束,确保数据完整性。外键约束要求子表中的列引用父表中的主键列。语法为:alter table child_table add foreign key (child_column) ref
sql中reference怎么用
2024-05-12

sql中nullif怎么用

sql 中的 nullif() 函数,用于比较两个表达式并返回较小的值,若均为 null 则返回 null,语法为 nullif(expression1, expression2)。可用它避免错误、简化代码,亦可用于过滤、创建唯一索引和替换
sql中nullif怎么用
2024-05-15

sql中filename怎么用

filename 函数用于返回文件系统的完整路径和名称。它可以通过以下语法使用:select filename()。通过该函数,您可以访问存储在文件系统中的数据,用于 open 和 execute 语句中指定文件路径。如何使用 SQL 中的
sql中filename怎么用
2024-05-02

sql中drop怎么用

sql drop 命令用于删除数据库对象,如表、视图、索引、约束或过程,语法为:drop [对象类型] 对象名称。其中对象类型可以是 database、view、index、constraint、procedure 或 function,对
sql中drop怎么用
2024-05-07

sql中minus怎么用

sql中的minus运算符用于从一个表中减去另一个表中的行,返回两组行之间的差集:语法:select from table1 minus select from table2差异与except:minus运算符会消除重复行,而excep
sql中minus怎么用
2024-05-02

sql中nvl怎么用

nvl 函数在 sql 中替换 null 值,其语法为 nvl(expression, replacement_value)。它通过检查第一个参数 expression,如果为 null 则用第二个参数 replacement_value
sql中nvl怎么用
2024-05-09

sql中identity_insert怎么使用

在SQL中,IDENTITY_INSERT用于允许将值插入一个带有标识列的表。标识列是指自动增长的列,通常用于为表中的每一行生成唯一的标识符。要使用IDENTITY_INSERT,你需要执行以下步骤:1. 首先,确保你是表的所有者或具有足够
2023-08-30

sql中exists怎么使用

在SQL中,EXISTS是一个用于检查子查询结果是否存在的操作符。它返回一个布尔值,表示是否存在。以下是EXISTS的使用方法:1. 使用EXISTS条件:```sqlSELECT column1, column2, ...FROM tab
2023-08-08

sql中的rank()怎么用

核⼼答案:sql 中的 rank() 函数用于返回指定行在结果集中的排名,基于行中值的排序。详细描述:rank() 函数通过 over 子句指定分区和排序表达式。它根据指定列或表达式的排序对结果集中的行进行排名。相同值的排名相同,从 1 开
sql中的rank()怎么用
2024-05-09

SQL中VARCHART怎么使用

在SQL中,VARCHAR用于定义可变长度的字符数据类型。以下是在SQL中使用VARCHAR的示例:1. 创建一个具有VARCHAR列的表:```CREATE TABLE users (id INT,name VARCHAR(50),ema
2023-08-30

编程热搜

目录