存储过程与Excel中的直接查询

时间:2014-06-27 16:06:39

标签: sql sql-server excel-vba vba excel

我有一个excel文件,它将选择大约1100行,包含5列数据。大多数列长5位,是整数。我使用宏连接到SQL服务器数据库并将这些行插入一个或两个表。这就是它的全部功能,然后关闭连接。因此,用户打开一个excel文件,其中包含行,单击按钮并执行宏。

我的问题是,查询是否应该用Excel编写,因为它很简单,只是将数据插入到几个表中。或者更有效地调用存储过程并传递存储过程中的所有值,并让它分配值在不同表中的位置。当我的意思是效率,我的意思是哪个是最快的?我知道这可能需要几秒钟才能完成。我只是觉得去存储过程是数据在到达表之前必须到达的路径上的额外点。我错了吗?有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在SQL Server中使用存储过程有一些优点。一个是SQL Server预编译并保存查询执行计划,从而提高性能。使用当前的方法,SQL Server通常需要每次都生成执行计划。存储过程还可以减少客户端/服务器网络流量。

所以,即使它看起来像沿着路径的额外点,它实际上可以更快。

答案 1 :(得分:0)

除了@mark d。的答案之外,使用存储过程的另一个原因是安全性。

您的评论说客户正在将数据输入Excel,因此如果您将直接SQL放入电子表格中,则可能会有人打开您的电子表格并找到有关您数据库的信息。但是如果你使用存储过程,那么可以学到的东西要少得多。

无论哪种方式,请确保您没有将任何连接字符串/帐户凭据硬编码到电子表格中。