达梦建立堆表是指定nobranch,类似insert /*+ parallel(10) */这种操作会不会用到并发?如何查看实际执行时具体的并发线程?oracle中v$sessions、v$px_sessions都能看到并发线程,为什么达梦没有?有没有人怀疑dm的并发是忽悠人的,同样的并发提示,oracle比达梦快不止一个档次,感觉根本就没有并发
sql手册明确定义:NOBRANCH = 建堆表,并发分支个数为 0,非并发分支个数为 1 。而分支的处理方式是——并发分支按事务号随机选链表插入,多用户可各插各的链表;非并发分支则按分支号从小到大选,无空闲分支时必须排队等锁释放 。也就是说 NOBRANCH 堆表只有 1 条非并发链表,10 个并行线程插数据时全部在这 1 条链表上串行排队,并发分支机制完全没有用武之地。手册写明:“<BRANCH 数>主要在 FLDR 导入和查询插入等并发、批量插入场景中使用;<NOBRANCH 数>在非并发、单行插入场景中使用” 。要用并发插入,建表应该是 STORAGE(BRANCH (N,M))。
sql手册明确定义:NOBRANCH = 建堆表,并发分支个数为 0,非并发分支个数为 1 。而分支的处理方式是——并发分支按事务号随机选链表插入,多用户可各插各的链表;非并发分支则按分支号从小到大选,无空闲分支时必须排队等锁释放 。也就是说 NOBRANCH 堆表只有 1 条非并发链表,10 个并行线程插数据时全部在这 1 条链表上串行排队,并发分支机制完全没有用武之地。手册写明:“<BRANCH 数>主要在 FLDR 导入和查询插入等并发、批量插入场景中使用;<NOBRANCH 数>在非并发、单行插入场景中使用” 。要用并发插入,建表应该是 STORAGE(BRANCH (N,M))。