`
javatoyou
  • 浏览: 1021518 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

最近写的一个使用了表变量参数的存储过程

 
阅读更多

--=======================================下面是call 这个存储过程================================================================


在使用这个存储过程之前,没有使用表变量,每次在游标内部都要select一个表值函数,而有两个游标都需要用到这个表值函数,那么重复的查询导致了严重的性能问题.

而现在用sql server 2008里的新技术,表变量参数解决了这个问题,先把表值函数的结果放进一个表变量里,然后在游标循环的时候就可以直间使用表变量了,而不用再

查询一次表值函数. 在没有使用表变量为参数时,运行时间为1分34秒,在使用后降为10秒.性能的提升是非常明显的!

注意,在使用表变量参数前,要先定义一个用户自定义数据类型的表结构


在存储过程里面定义这个数据类型的变量(这里MCS_ModelList 就是定义的类型名称)

然后就可以像普通表一样操作它 select * from@ModelList update @ModelList ......

分享到:
评论

相关推荐

    sqlserver的存储过程与 where in 多值参数

    自己总结的 关于sqlserver存储过程与多值参数的解决办法。

    此资源不全,请另下载 C#传递表变量给ORACLE存储过程

    此资源不全,请下载我最新上传的.从网上找资料解决的表变量作为一存储过程的参数传递给ORACLE;

    .net C# ORACLE带表参数存储过程

    因为.net中的除string类的数据类型外,其它类型要求手动修改UDT自动生成的类文件,本人测试了2天后,才明白要修改UDT自动生成的类文件,此功能特好用,尤其是象财务凭证中子栏的一次更新,要求一次将整张凭证更新到ORACLE,...

    oracle存储过程

    存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 定义总是很抽象。存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Server)。如果我们通过创建存储...

    ORACLE分页存储过程

    在分页存储过程中,主要理解了变量的动态赋值和输入输出参数的使用就非常简单了 下面为调用方法: var c_Preccount number; var c_Ppagecount number; var c_cur refcursor; exec proc_SpPag(1,'SELECT * FROM T_...

    Oracle_存储过程的基本语法

    将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;...

    SQL 存储过程 procedure 讲解+代码实例

    存储过程和函数在实际项目中的使用2. 存储过程与函数的比较2.1. 共同点2.2. 不同点3. 变量的定义和使用3.1. 变量的定义3.1.1. 定义局部变量 declare3.1.2. 定义全局变量 set @3.1.3. 修改变量的值 set4. 存储过程 ...

    oracle存储过程语法

    BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,...

    SYBASE IQ存储过程学习笔记

    存储过程通过CALL语句进行调用,使用变量传入参数和返回结果。可以返回结果集,也可以调用其他的存储过程。 2. 存储过程和函数的区别 自定义函数是只能返回单一值的特定的存储过程。函数不修改传入的参数,但是可以...

    C#调用oracle方法(包括调用存储过程)

    详细的记录了C#如何调用oracle以及带有存储过程输出变量的方法,适合初学者。

    将DataTable作为存储过程参数的用法实例详解

    最近工作中写了几个存储过程,需要向存储过程中传递字符串,因为SQL Server 2000中没有内置类似于 split 的函数,只好自己处理,将前台数据集中的一列用逗号拆分存到一个List中,再转化为字符串传给存储过程,很是...

    oracle定义存储过程

    这个文档对初学者来说是非常实用的,简单思路清晰,这里包括了 定义存储过程、调用带有输入输出参数的存储过程、存储过程异常处理、存储过程中事务处理的例子,很直观,

    mssql存储过程表名和字段名为变量的实现方法

    mssql存储过程表名和字段名为变量的实现方法,需要的朋友可以参考下。

    Oracle技术_5分钟会用存储过程_存储过程简单实例

    Oracle技术_5分钟会用存储过程_存储过程简单实例 包括建表及初始化数据,直接运行就可以用 包含循环、条件、增改查、参数传入、变量赋值、java调用等 http://blog.csdn.net/ooppookid/article/details/41206963

    oracle存储过程学习笔记

    1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字

    C#语法及存储过程.docx

    create procedure user //创建一个存储过程 @NAME nvarchar(50) //创建变量,数据类型及初始值 .................. //创建变量,数据类型及初始值 .................. //创建变量,数据类型及初始值 ................

    mybatis 动态sql及参数传递

    目录 使用场景 动态标签 if标签 where标签 choose、when、otherwise 标签 ...if标签通常用那个胡where语句,update语句,insert语句中,通过判断参数值来决定是否使用某个查询条件,判断是否更新某一个字段或插入某个字段

    oracle 数据库的绑定变量特性及应用

    绑定变量的目的和命名用方法

    实验报告。doc

    学生信息管理系统的实验报告,SQL+C++

    Oracle存储过程及调用

    create procedure 存储过程名称(随便取) (变量1 数据类型,变量2 数据类型,...,变量n 数据类型) is 在这里可以定义常量、变量、游标、复杂数据类型这里可以定义变量、常量 begin 执行部分 end; (3)带输入、...

Global site tag (gtag.js) - Google Analytics