强制复制已复制的表

时间:2019-05-05 06:48:56

标签: azure sql-data-warehouse azure-sql-data-warehouse

我的某些表的类型为REPLICATE。在开始查询数据之前,我希望将这些表进行实际复制(不挂起)。这将帮助我避免数据移动。

我有一个脚本,该脚本是我在网上找到的,该脚本循环运行,并对设置为要复制的所有表执行SELECT TOP 1,但是有时脚本要运行几个小时。即使您从foo执行SELECT TOP 1,服务器似乎有时也不会触发复制。

如何强制SQL Datawarehouse完成复制?

脚本看起来像这样:

Starting development server at https://127.0.0.1:8000/
Using SSL certificate: C:\Users\djangotutorial\myvenv\lib\site-packages\sslserver\certs\certificate.pem
Using SSL key: C:\Users\djangotutorial\myvenv\lib\site-packages\sslserver\certs\key.key

2 个答案:

答案 0 :(得分:1)

Henrik,如果“ select top 1”没有触发复制表的构建,那将是一个缺陷。请提交支持票。

如果不查看系统,就不可能确切知道正在发生什么。这里有几件事可能会影响构建时间的延长:

  • 复制的表很大(大小,不一定是行),需要很长的构建时间。
  • 复制表上有很多二级索引,需要很长的构建时间。
  • 复制的表版本需要statirc20(2个并发插槽)。如果并发插槽不可用,则构建将在其他正在运行的查询之后排队。
  • 使用插入,更新和删除功能不断修改复制的表。进行修改需要重新构建表。

答案 1 :(得分:0)

最好的方法是在创建/更新表的作业中运行这样的命令:

select top 1 * from <table>

这将强制其在正确的时间重新分发,而不会在存储过程中缓慢循环。