问题:为什么动易的sql版里没有任何存储过程?这样的sql高效率如何能体现呢?
解答:动易的前台使用生成HTML静态页面功能,不需要存储过程。动易系统后台的治理页面要根据几十个条件组合成查询语句,存储过程根本不可如此灵活。太简单的查询如:select * from PE_Class order by RootID,OrderID也没有必要使用存储过程。
问题:但经常看到这样的说明 没有存储过程的sql程序效率可能还比不上ac?
解答:以下是以下是SQL2000的联机帮助内容:
使用 SQL Server 中的存储过程而不使用存储在客户计算机本地的 Transact-SQL 程序的优势有: 答应模块化程序设计。 只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。 答应更快执行。 假如某操作需要大量 Transact-SQL 代码或需重复执行,存储过程将比 Transact-SQL 批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行 Transact-SQL 语句时,都要从客户端重复发送,并且在 SQL Server 每次执行这些语句时,都要对其进行编译和优化。 减少网络流量。 一个需要数百行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。 可作为安全机制使用。 即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。 |
所以存储过程只是体现在“快”这方面,其他与普通的SQL语句是一样的。动易系统启用了生成静态页面功能,再快的存储也比不过已生成的静态页面。
对于一些些C/S结构的软件,在客户端进行数据库的查询,这才会比存储过程引发更多的网络流量。对于服务器端程序来说,存储过程与普通查询都是在服务器的内存中进行的,所以都是一样的网络流量。
新闻热点
疑难解答
图片精选