07 2011 档案

摘要:没有MySql般方便的limit分页,在MSSQL中需要分页查询数据的话,就只好写存储过程了。。。not in方式的分页性能差,创建变量表的方式相对来说,应该要好些。(MSSQL2000)之前都是获取分页数据、获取数据总数分开写,也就是做两次查询。某天突然想了想,干脆把这两步操作都写到分页查询里,返回分页数据的同时,把数据总数也返回。这么做有什么好处呢? 1、减少一次数据库请求。 2、查询条件很多时,就只需拼一次SQL了。 3、方便维护 4、。。。。。。这几个理由,足够了,那么就实践吧。-- =============================================--... 阅读全文
posted @ 2011-07-25 16:25 up-Henson 阅读(4293) 评论(9) 推荐(0)
摘要:对于一个大型业务系统来说,数据分页显示,是必不可少的。但是怎么分、用什么分,方法和工具就有很多了。。。刚入门的时候,总是会很习惯的从工具箱中拖出一个GridView,加上AllowPaging="true",再写个OnPageIndexChanging事件,OK,分页实现了。。。发现这种方式效率差后,就开始拖.Net3.5中的独立分页控件了,忘了叫什么名字,公司用.Net2.0,没办法。这些方式,基本上都是一次就查出所有数据,再分页。----------------------------------------------------------------------- 阅读全文
posted @ 2011-07-21 15:33 up-Henson 阅读(1550) 评论(9) 推荐(1)
摘要:在平时的开发中,涉及多表数据联合查询时,一般我都会想当然的Inner Join、Left Join,也经常出现数据量一大查询就特别慢的问题。刚开始还没在意,想当然的以为,数量大了,查询慢是正常的。可又想了一下,对于MSSQL来说,40多万也不算很大啊。。。今天突然想了下,如果不关联表,而是在循环中,需要时再查询数据库,获取其他表的数据。以我目前对SQL的理解: 1、数据量大时,多表关联查询效率确实是不怎么样,还要考虑分页,那就更闹心了。。。 2、循环中单个查询,如果是在C#代码中查询,每次查询都要打开数据库连接、关闭数据库连接,再将数据映射到实体类中,好像效率也不怎么样。。。 3、单个查... 阅读全文
posted @ 2011-07-19 23:42 up-Henson 阅读(15951) 评论(34) 推荐(3)
摘要:前段时间,在做一个可以批量审核或删除数据的功能时,遇到这么个问题: 因为审核或删除操作是在存储过程进行的,所以,就打算将选中的数据的主键拼成字符串,传到存储过程进行分离,再继续处理。 C#中和JavaScript中都有相应的分离字符串的Split函数,就想当然的以为SQL中也会有类似的函数,结果查了半天的MSSQL帮助文档,也没找到。 没办法,只好自己写了,在网上搜了下相关的,看了一两篇关于SQL分离字符串的自定义函数的文章,结果,有点失望,可能是自己水平差,或者是因为人家的代码没写注释吧,总之就是看着挺吃力的,还没看完就决定自己写了。。。 思路很简单:在需要分解的字符串中,如果存... 阅读全文
posted @ 2011-07-18 13:48 up-Henson 阅读(4081) 评论(11) 推荐(1)