我有许多存储过程,主要使用相同的表和视图,这些表和视图已经开始运行缓慢。
我查看了其中一个的查询计划,它给了我两个警告。一个是具有聚集索引的视图上的“没有统计信息的列”,该索引使用“无扩展”提示进行查询。
第二个警告发生在计划中存在排序的位置:“操作员在执行期间使用tempdb溢出数据,溢出级别为1 ......”
为了使用sql,我编写了一个“Create”脚本并用它来创建第二个存储过程。我运行的新程序仍然包含相同的sql并使用相同的参数,执行时间从33s减少到16s。
据我所知,执行计划看起来一样,只是我没有收到关于排序的警告。
那我该怎么办?我应该重新编译我的所有存储过程吗?我怎样才能弄清楚出了什么问题并防止它再次发生?
这是在我的Sql Azure上的生产数据库中发生的。我的本地Sql Server数据库没有这样的问题
答案 0 :(得分:0)
请使用SORT操作中使用的列创建索引。
print(step, sess.run(cost, feed_dict={X: some_x_value, Y: some_y_value}), sess.run(W), sess.run(b))
创建排序操作后,不应该有警告,不应该使用TempDB。