SQL优化技巧-批处理替代游标

Posted xianeri

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL优化技巧-批处理替代游标相关的知识,希望对你有一定的参考价值。

通过MSSQL中的用户自定义表类型可以快速将需要处理的数据存储起来,生成新的临时表(这里使用变量表),然后根据表中字段进行批处理替代游标。

用户自定义表类型

 0 --创建用户自定义表类型
1
Create Type [dbo].[type_XXXTable] As Table( 2 [Item1] [Varchar](255) Null, 3 [Item2] [Varchar](255) Null, 4 [Item3] [Varchar](255) Null, 5 [Item4] [Varchar](255) Null, 6 [Item5] [Varchar](255) Null, 7 [Item6] [Varchar](255) Null, 8 [Item7] [Varchar](255) Null, 9 [Item8] [Varchar](255) Null, 10 [Item9] [Varchar](255) Null, 11 [Item10] [Varchar](255) Null, 12 [ItemInt1] [Int] Null, 13 [ItemInt2] [Int] Null, 14 [ItemInt3] [Int] Null, 15 [ItemInt4] [Int] Null, 16 [ItemInt5] [Int] Null, 17 [ItemFloat1] [Decimal](28, 8) Null, 18 [ItemFloat2] [Decimal](28, 8) Null, 19 [ItemFloat3] [Decimal](28, 8) Null, 20 [ItemFloat4] [Decimal](28, 8) Null, 21 [ItemFloat5] [Decimal](28, 8) Null, 22 [ItemDateTime1] [DateTime] Null, 23 [ItemDateTime2] [DateTime] Null 24 ) 25 Go

 

0    --引用新数据表类型存储t_XXX表的FieldName1

1
Declare @XXX type_XXXTable 2 Insert Into @XXX(Item1) --Item1为刚才创建表类型的第一个字段 3 Select FIeldNmae1 From t_XXX

 

1 --将游标动作改写为表处理
2 eg: 
3     Select FieldName1 Into #t_XXX

 

 2018-07-14 14:34:38 

 




以上是关于SQL优化技巧-批处理替代游标的主要内容,如果未能解决你的问题,请参考以下文章

PB powerbuilder中使用datastore替代游标

Oracle游标sql语句代码块的优化

如何优化使用游标的 PL/SQL 代码

在 Oracle 10g 的 SQL 过程中使用游标的任何替代方法?

.NET性能优化-使用RecyclableMemoryStream替代MemoryStream

这些SQL优化技巧握在手,面试可以横着走……