扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
我拿到sql一看是update语句,想都没多想直接加并行,但是加了并行发现子查询根本没有用到并行,而且整体cost没有什么变化。我仔细想了想,这种写法oracle内部是通过单条跟新的方式进行,从p_t中那出一条记录去c_t中匹配,c_t中采用索引扫描,然后再通过rowid访问表取到name。所以优化器计算后,不会对子查询中的c_t应用并行,因为此时并行会采用全表扫描,效率肯定没有索引扫描快。语句和执行计划如下:
成都创新互联公司是一家专业提供孝昌企业网站建设,专注与成都网站制作、做网站、外贸营销网站建设、H5技术、小程序制作等业务。10年已为孝昌众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
update /*+parallel(p_t,4)*/ p_t set name=(select /*+parallel(c_t,4)*/ name from c_t where p_t.id=c_t.id) where p_t.name is null;
数据分表 分页获取 缓存 扩大服务器内存及CPU数量 也就这些了 没别的办法了 再就是做集群服务器 或者 CDN节点分发
SQLserver2000 数据库大小 1,048,516 TB
每个 SQL Server 实例的数据库个数 32,767
每个数据库的文件组个数 256
每个数据库的文件个数 32,767
文件大小(数据) 32 TB
文件大小(日志) 32 TB
理论上你的硬盘有多大,数据库就可以有多大(前提是你的操作系统能识别这些磁盘空间)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流