在我最近的主题中,我必须通过动态SQL做一些查询,但我很好奇
效率的方式不同:
1)将我的服务器中的sql语句组合起来,然后将它们发送到数据库,进行查询
2)将我的变量发送到数据库并在某个程序中合并它们,最后进行查询
希望有人能帮助你
BTW(我使用.Net和Sqlserver)
答案 0 :(得分:2)
首先,您应该做的主要事情之一是参数化您的SQL - 无论是将其作为存储过程包装在数据库中,还是通过在应用程序代码中创建SQL语句然后解雇整个事物进入DB。这意味着:
存储过程确实提供了一些额外的好处:
安全性,只需要向存储过程授予EXECUTE权限,您不需要授予用户对底层数据库表的直接访问权
可维护性,对查询的更改不涉及应用程序代码更改,您只需更改数据库中的sproc
网络流量,不一定是主要的一点,但你通过网络发送更少,特别是如果查询非常大/复杂
就个人而言,我大部分时间都使用存储过程。虽然我需要在应用程序代码中动态构建SQL,但它始终是参数化的。
答案 1 :(得分:0)
最好是使用存储过程并从应用程序传递参数,因为存储过程是预编译的查询并准备好执行计划,这样可以节省大量时间。
您可以引用此详细信息http://mukund.wordpress.com/2005/10/14/advantages-and-disadvantages-of-stored-procedure/
快乐的编码!!