崔文远 Troy Cui 老崔先生的上海生活、技术博客

重写了MSSQL分页存储过程,附完整sql脚本

晚上花了1小时重写了MSSQL数据库中的分页存储过程,采用ROW_NUMBER的方式,需要MSSQL2005及以上版本支持。

为什么这么做,有两点:

第一:因为一直觉得采用TOP嵌套的方式太落后,尽管在程序中已经支持自定义View的方式读取分页,但是如果是单表的读取还是走存储过程,现在都MSSQL 2016了,MSSQL都支持ROW_NUMBER都10多年了,再不升级,别说客户和用户,自己都觉得太落后了。

第二:原来用吉日嘎拉的存储过程,有个bug,第1页的最后一行记录还会重复显示在第2页的第一条。修复bug也是硬指标。

More...

Tags:

发布: cuiwenyuan 分类: 技术管理与生活 评论: 0 浏览: 0

最近被Web.config中数据库连接池 Max Pool Size的问题折腾了

本来Web.config中数据库连接字符串什么都不写,MSSQL数据源默认为100个,近期升级系统,无意间写了一下,用户访问量一大就奇慢无比,另外还弄了一个Connect Timeout=60,造成本来运行了3年的系统忽然变慢,找了很久原因在找到。

特此记录一下,特别是跨国读取数据库时,怎么平衡这里的设置是个考验。

Tags:

发布: cuiwenyuan 分类: Web技术 评论: 0 浏览: 4

做了多年的噩梦

以下文字写于2017年1月31日,首发于朋友圈,昨天将411的微信群建起来了,没想到还是没忍住,没想到我们用这种方式相聚,欣喜之余想到了这段文字,特转发到博客。

一直有个梦,反复的做了多年。

梦里回到大学的宿舍,回到了毕业的那段时间。梦里面一直重复着我被赶出宿舍的场景,而我一直困在宿舍里,手忙脚乱的希望将所有物品都带走。事实上,毕业时,宿舍的其他室友,都先我离开,每个人都欢欣雀跃的奔向各自的单位、学校或者是家乡,到了最后,那些大三期末的同学将我住的宿舍,我住的床占领。本打算留存下来的物品,也被无奈的丢弃。没有人送别,更不愿道别,有种不舍,有种抛弃感。

More...

Tags:

发布: cuiwenyuan 分类: 技术管理与生活 评论: 0 浏览: 16

C#中启用托管的Oracle.ManagedDataAccess访问Oracle数据库

上个月有个项目从基于Oracle数据库的Infor ERP LN系统中多表关联查询记录,遇到一张600多万的记录表,造成本来MSSQL的Linked Server方式好用的SQL频频超时。难道是服务器与服务器之间的网络有问题?还是MSSQL 2008 R2的问题?也朝这个方向研究了一阵,后来想想算了,还是直接连Oracle吧。

原来偷懒的技术债务,不还不行了。

于是启用托管方式的Oracle.ManagedDataAccess.dll,并从老版本4.121.2.20150926的dll更新到了4.122.1.20170524,升级了原来吉日嘎拉的数据访问底层,web.config等,半天搞定老sql的替换,测试跑下来速度飞快了。

More...

在.NET中实现AOP的7种姿势

英文原文:《7 Approaches for AOP in .Net》,我是个搬运工。感觉大部分人推荐用PostSharp/Cecil,好用且高效。我看了一下,虽然PostSharp目前收费,但按照Developer授权的价格还可以接收的,工欲善其事必先利其器,值得的!

---------------------------------------------------------------------------------------
1、Remoting Proxies
优点:由于有.Net框架支持,容易实现
缺点:重量级较大,只能用于interface或MarshalByRefObjects

2、Deriving from ContextBoundObject
优点:最容易实现,原生支持调用截获
缺点:非常耗费性能

3、编译时生成子类
产品:( Rhino Proxy )
优点:容易理解
缺点:只能用于Interfaces 或 virtual方法

4、运行时生成子类
产品:( Castle Dynamic Proxy )
优点:容易理解,非常灵活
缺点:实现复杂 (但已有现成类库),只能用于Interfaces 或virtual方法

5、挂钩分析用的API
产品:( Type Mock )
有点:非常强大
缺点:性能存在疑问?实现复杂(用到COM,需要另一个运行程序,等等)

6、编译时IL修改 
产品:( Post Sharp / Cecil )
优点:非常强大,性能非常好。
缺点:非常难以实现

7、运行时修改IL
产品:( Post Sharp / Cecil )
优点:非常强大,性能很好
缺点:非常难以实现

More...

Tags:

发布: cuiwenyuan 分类: Web技术 评论: 0 浏览: 12

Daylight Saving Time

关于这个Daylight Saving Time,其实做IT这么久了,才真正在项目中涉及到,近期我在思考如下问题:

1、如何设置数据库?  特别是主流的Oracle、MSSQL和MYSQL

2、程序中如何获取值?特别是C#中,怎么获取?

3、程序中如何显示值?特别是C#中?


有这方面经验的,有国际化经验的朋友,请看到信息后分享一下,谢谢!

 

 

DST (Daylight Saving Time)

More...

Tags:

发布: cuiwenyuan 分类: Web技术 评论: 0 浏览: 8

避免页面被劫持的新办法

近期碰到一个问题,关于如何禁止页面在框架中打开的,觉得好玩,分享一下。

以前经常用前端的一段js代码,但防君子不防小人,别人还是可以通过禁用js,或动态修改js来引用。

<script>

        if (top.location !== self.location) {

            top.location = self.location;

        }

</script>

想在自己的iframe中打开一个网站,但是怎么都打不开,F12调试一下,看到如下截图的报错,信息如下:Refused to display 'https://www.cuiwenyuan.com/Logon.aspx' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

More...

Tags:

发布: cuiwenyuan 分类: Web技术 评论: 0 浏览: 20

视频会议系统HighFive App安卓客户端apk下载

HighFive是当下流行的视频会议系统,市场占有率越来越高,很多公司都从WebEx转向到HighFive了。

对于PC端,发起会议需要安装 Desktop的App,参加会议不需要任何插件和客户端,这点比WebEx强!

但手机用户还是需要安装App的,苹果手机有Apple Store,国内用户使用毫无任何障碍,但是Android手机想要安装HighFive的App,目前只能通过Google Play市场,可是Google Play国内用不了!

我通过翻墙下载到了最新的High Five Android App的安装文件,大家可以用安卓手机扫描以下二维码下载后安装。

More...

Tags:

发布: cuiwenyuan 分类: 技术管理与生活 评论: 1 浏览: 20