存储过程优点是减少网络流量,提高查询速度.视图:在开发C/S系统没有太大的作用,只是给开发者、用户带来查询的方便,再一个视图还有如:exists...
等关键字、语句不支持临时表:可用可不用,看你怎么需不需要,有没有必要对于查询语句较长的,一般用存储过程比较好!

解决方案 »

  1.   

    用存儲過程的好處
    使用 SQL Server 中的存储过程而不使用存储在客户计算机本地的 Transact-SQL 程序的优势有: 允许模块化程序设计。 
    只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。允许更快执行。 
    如果某操作需要大量 Transact-SQL 代码或需重复执行,存储过程将比 Transact-SQL 批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行 Transact-SQL 语句时,都要从客户端重复发送,并且在 SQL Server 每次执行这些语句时,都要对其进行编译和优化。减少网络流量。 
    一个需要数百行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。可作为安全机制使用。 
    即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。SQL Server 存储过程是用 Transact-SQL 语句 CREATE PROCEDURE 创建的,并可用 ALTER PROCEDURE 语句进行修改。存储过程定义包含两个主要组成部分:过程名称及其参数的说明,以及过程的主体(其中包含执行过程操作的 Transact-SQL 语句)。
    1、存储过程是用户写好后编译好的过程,调用的时候直接调用就行了,减少了编译的时间。
    2、存储过程直接存在服务器上,减少了客户端与服务端的传输过程。
    3、可以直接调用,很方便,可以重复使用,而不需要知道内部是怎么做的。
    4、安全性,这样用也增加了安全性。
      

  2.   

    反正你记住,在实际中大部分的sql语句都是写成存储过程,这样效率、速度、安全性都比直接在前端写sql高很多,特别是比较复杂的查询(比如报表之类)都是写成存储过程的!
      

  3.   

    优先使用SP.可以看一下petShop两个版本的比较,不过SP中尽量不要封装复杂的业务逻辑