仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1435|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之sql server 2005中利用apply对每行挪用...

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:23:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差server|函数利用APPLY运算符能够为完成查询操纵的内部表表达式前往的每一个行挪用表值函数。表值函数作为右输出,内部表表达式作为左输出。经由过程对右输出求值来取得左输出每行的盘算了局,天生的行被组合起来作为终极输入。APPLY运算符天生的列的列表是左输出中的列集,后跟右输出前往的列的列表。
APPLY有两种情势:CROSSAPPLYOUTERAPPLYCROSSAPPLY仅前往内部表中经由过程表值函数天生了局集的行。OUTERAPPLY既前往天生了局集的行,也前往不天生了局集的行,个中表值函数天生的列中的值为NULL
--创立test表
createtabletest(oidint,namechar(20),leadchar(10))

--往内里拔出几行数据
insertintotestvalues(1,测试公司,11)
insertintotestvalues(1,测试公司,12)
insertintotestvalues(1,测试公司,13)
insertintotestvalues(1,测试公司,14,15,16)


--拆分字符串函数
alterfunctionselect_Dempart_Manager
(
@oidint,
@leadchar(10)
)
returns@temptable(oidint,leadchar(10))
as
begin
whilecharindex(,,@lead)>1
begin
insertinto@tempvalues(@oid,left(@lead,charindex(,,@lead)-1))
set@lead=stuff(@lead,1,charindex(,,@lead),)
end
insertinto@tempvalues(@oid,@lead)
return
end

--利用apply函数挪用
selecta.oid,name,ST.leadfromtesta
outerapplyselect_Dempart_Manager(a.oid,a.lead)asST

--了局
--oidnamelead
--1测试公司11
--1测试公司12
--1测试公司13
--1测试公司14
--1测试公司15
--1测试公司16

为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。
不帅 该用户已被删除
9#
发表于 2015-3-20 15:01:08 | 只看该作者
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
精灵巫婆 该用户已被删除
8#
发表于 2015-3-13 06:11:24 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
莫相离 该用户已被删除
7#
发表于 2015-3-6 19:18:45 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
蒙在股里 该用户已被删除
6#
发表于 2015-2-20 23:41:15 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
变相怪杰 该用户已被删除
5#
发表于 2015-2-7 06:38:52 | 只看该作者
大侠们有推荐的书籍和学习方法写下吧。
再现理想 该用户已被删除
地板
发表于 2015-2-1 14:58:10 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
爱飞 该用户已被删除
板凳
发表于 2015-1-24 12:55:12 | 只看该作者
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-19 10:29:49 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 05:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表