仓酷云

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

[学习教程] 在Sql2005的Where前提中利用函数

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:18:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
你看出了作者的深度?深处半米!当初是冲那么多的大牛给他写序才买的,后来才发现无啥内容,作者也只是才用几年的新手,百花了几十两银子,再次感叹当今社会的虚伪与浮躁明天写了条Sql查询数据,Sql语句以下:
selectDIDfrom
(
selectDIDfromSys_Dictionarywheredbo.fn_IsDate(left(right(DID,11),8))=1
)A
wheredatediff(d,cast(left(right(A.DID,11),8)asdatetime),getdate())>=0

发明所查询到的了局与本人料想的纷歧样。非常不解,经由过程测试各类分歧的写法,失掉的了局仍是与料想的纷歧样。折腾了一个多小时,终究在Sql中的实行企图中找到了缘故原由。

本来,Sql2005会依据本人的一些划定规矩来优化我们写的Sql语句,在实行企图中能够看到,它是先辈行会萃索引的描实行了datediff(d,cast(left(right(A.DID,11),8)asdatetime),getdate())>=0前提,再经由选择器利用dbo.fn_IsDate(left(right(DID,11),8))=1来选择,如许,经由SqlServer的优化后,以上Sql的实行按次完整反了,失掉的结查固然就是纷歧样了。

以是,假如我们要在Where前提中利用函数,请审慎!上面我们说了DML的闪回方案。但对于DDL却无能为力,对于大多数的DDL,即使是rowbase格式,二进制日志binlog中仍只记录语句本身。对于删表操作,只记录一个语句droptablet。仅凭这句话,无法还原表的数据。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-18 12:47:24 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-23 06:06:19 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
金色的骷髅 该用户已被删除
地板
发表于 2015-1-31 15:31:55 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
再现理想 该用户已被删除
5#
发表于 2015-2-6 20:44:33 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
因胸联盟 该用户已被删除
6#
发表于 2015-2-18 18:27:12 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
飘灵儿 该用户已被删除
7#
发表于 2015-3-6 09:11:26 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
柔情似水 该用户已被删除
8#
发表于 2015-3-13 00:08:19 | 只看该作者
学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
再见西城 该用户已被删除
9#
发表于 2015-3-13 00:08:23 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
海妖 该用户已被删除
10#
发表于 2015-3-20 07:01:45 | 只看该作者
大家注意一点。如下面的例子:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-29 14:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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