使用 sudo tc qdisc add dev bond1 root netem delay 0.45ms 命令模拟网络时延
并将客户的数据导回来,在测试环境模拟重现,yashandb的耗时:
oracle的耗时:
细观察oracle的执行计划,我们可以发现,其访问远端表并不是将所有列的数据拉回来了,而只是拉回来了select查询语句中需要的列:
使用OCI驱动编程使用示例 中提供的例子可以分析oci的耗时。
fetch size如果为2000,只从CUX.CUX_PM_PG_SUB_PROJECTS表中查询"SUB_PROJECT_ID","PROJECT_NAME"两列,耗时100ms左右,注意此时的网络时延仍然为0.45ms:
结合以上分析,yashan需要优化的方向为:
1、只从dblink拉取查询需要的列数据
2、设置合理的fetch size,不能太小