我有一个安装程序,其中存在SQL Server(MS SQL Server 2016 13.0.5366.0),但数据库文件(日志和数据)存储在云存储帐户中。设置说明here。
有趣的部分是物理读取数据的性能。基本上,我在运行之前从表和清理缓冲区/缓存执行非常简单的select语句。
如果我从表和物理读取中以单线程查询形式读取数据 需要我获得最大的网络利用率,且永远不会超过 32 Mbps -比我预期的慢得多
如果我在许多线程中读取数据,这也需要物理读取, 最大网络利用率接近 500 Mbps 我会期望的。
试图理解:
为什么顺序执行不能更快地读取数据?单线程的最大读取性能是否有一些限制?
为什么查询不能开始并行工作,以便多个线程可以读取同一数据文件(并以此来获得更高的性能)?
尝试将数据拆分为多个数据文件-没有影响。
是否尝试查询提示(查询仍未并行执行)
OPTION(QUERYTRACEON 8649)
OPTION(USE HINT('ENABLE_PARALLEL_PLAN_PREFERENCE'))