摘要: 最近在做项目数据库优化过程中,考虑了数据库表分区的方案,MSSQL2005新增了表分区的概念,现在我用测试表来做一次表分区。表分区可以把不同数据放到不同数据库文件,按物理地址来隔开数据,理论情况下如果服务器是多磁盘,多CPU,还做了磁盘阵列后,查询操作效率会更明显。现在基本所有数据库都存在表分区的概念,但MSSQL表分区一些细节又不一样,我现在也是有一定的了解,因此本篇文章不做很细的原理性质的讲解,主要讲一下MSSQL表分区的创建过程。首先创建新的数据库文件,分别放到我本机的D:\SPPartition文件夹下的FirstPart,SecondPart,ThirdPart文件夹,新建3个文件文 阅读全文
posted @ 2011-09-28 21:44 Lawson 阅读(4615) 评论(3) 推荐(4)
摘要: 最近在看我所在项目系统里支付方面的代码,里面包括很多加密解密方面的知识,结合平时对加密解密的了解,对.net里加解密做一个总结。最开始遇到加密解密,可能和大家一样,MD5加密,读大学的时候 ,我喜欢了解一些安全方面知识,当时很多小型网站都存在SQL注入,找个小工具,很轻松跑出用户帐号和密码,一看密码是16位或32位,一般都是MD5加密后没有再修改过,通过http://www.cmd5.com/ 或http://www.xmd5.org/ 等网站,直接就“解密”成原始明文了(但现在这些网站已开始收费了)。最后过了一段时间才知道,原来这个是Hash散列加密,不可逆的,这些网站都通过人工学把不同帐号 阅读全文
posted @ 2011-08-21 17:50 Lawson 阅读(745) 评论(0) 推荐(0)
摘要: 做B/S项目,对css的动态调试,js动态调试,查看修改cookie等信息,如果借助一些优秀的浏览器插件,可以事半功倍的让技术人员分析并解决一些问题。说到浏览器插件,就必须说Firefox,它有太多支持它的插件,我想查看一下b/s请求信息等,都常常用到它。先说说我在用的有哪些插件,等会直接上图。主要用的插件有:Firebug,HttpFox,YSlow,Cookie Manager。还有其他比如fan墙时用的代理插件AutoProxy等,但我常用的那4个插件现在基本满足作为开发人员的我对b/s的一些信息查看和操作了。lFireBug:查看实时的html元素,和实时修改html内容和css非常方 阅读全文
posted @ 2011-07-31 01:23 Lawson 阅读(311) 评论(0) 推荐(0)
摘要: 其实这篇文章是1年多前整理和总结的,比较基础,但有时确实忘记了需要查看一下,留个备份。 Session,cookie是b/s中最常见的元素,除了只支持wap1.0的手机,部分不支持cookie,因此session客户端也一般存到url上,或者客户端禁止cookie,但现在一般不手工禁止cookie。下面对它们的区别做个简单的介绍,这里涉及具体配置就用.net环境下的配置介绍,不同语言思想都一样。下面简单介绍Http协议和Session,Cookie介绍和简单区别:Http协议: 服务端不能主动连接客户端,只能被动等待并答复客户端请求,浏览器无法记录客户端上次请求的状态(Request Hea. 阅读全文
posted @ 2011-07-24 15:20 Lawson 阅读(582) 评论(0) 推荐(1)
摘要: 2010年年初微软就正式发布了.net4.0和VS2010,不久我们有B/S项目就开始用起来了,但对一些服务端特性和新技术并没用,比如.net4.0对线程池的一些优化。.net4.0线程池新增了Cooperative Cancellation模式,它可以让线程池取消继续执行,在.net4.0以前,如果把任务交给了线程池,想要它停止下来几乎不可能,因为微软没有这样的接口,除非自己封装一个线程池,但.net框架自带的线程池执行会根据机器当前CPU、内存等综合资源来调度的,调用更方便,效果也更好。2年前,我帮测试团队写了一个小工具,帮助他们拨测网站,以前他们会找几个测试人员每天把网站的每个链接都点一 阅读全文
posted @ 2011-07-24 15:01 Lawson 阅读(757) 评论(0) 推荐(0)
摘要: 1、用SysComments的原因最近新模块的开发,需要更改和新增的存储过程比较多,为了同步开发环境和测试环境的存储过程,能在更新程序后,马上能整理出更改的存储过程脚本,并更新到测试DB服务器上,我用了SqlServer的系统表SysComments,它记录了数据库中所有的对象,当然包括了存储过程,该表有个text字段,它记录了sql定义的脚本内容,如果是存储过程,则记录的存储过程脚本。用它,可以写批量sql语句,直接帮助同步存储过程到测试数据库,因为为了和以后生成环境更新方式一致,需要整理出脚本,因此采用了sql语句获取存储过程内容的方式。2、遇到问题在获取存储过程脚本中,遇到了问题,就是更 阅读全文
posted @ 2011-05-30 16:00 Lawson 阅读(4203) 评论(0) 推荐(1)
摘要: Memcached是LiveJournal(http://www.livejournal.com/)旗下的Danga Interactive(http://www.danga.com/)公司开发的一款高效的分布式内存缓存服务器,它是一个开源的项目,既支持Linux,Mac os等系统,还支持windows系统。在Memcached项目官网上,http://memcached.org/,可以看到他现在的用户列表,Wikipedia(http://www.wikipedia.org/),Twitter(http://www.twitter.com/),Youtube(http://www.yout 阅读全文
posted @ 2011-04-24 22:06 Lawson 阅读(1152) 评论(0) 推荐(0)
摘要: 最近工作和全球分销系统GDS有关,需要多学习这方面的业务知识,下面不是自己的理解,是根据相关资料介绍Amadeus相关信息,希望以后能多熟悉了,对整个全球分销系统有个比较细致的了解,再写更多自己总结的文章。Amadeus是目前世界上最主要一家全球分销系统(GDS)和旅游运输业的技术供应商,它为全球的旅游运输业提供市场营销、分销和其它技术方案。艾玛迪斯公司目前在全球的200多个市场运作。Amadeus在200多个市场上提供服务,多于任何其它一家全球分销系统,其遍布全球的当地国家市场公司由强大的全球性公司提供集中的支持。这种协同合作的途径予艾玛迪斯以特有的能力在全球范围内应用其特殊的知识。Amad 阅读全文
posted @ 2011-04-09 23:54 Lawson 阅读(1389) 评论(0) 推荐(0)
摘要: 本篇文章做个记录,从安装Mono到运行好.net程序,到安装好jexus,配置并且运行起windows下面基于.net3.5开发的mvc2.0程序的过程。但不同linux系统,方法可能会有不一样,仅供参考。之前我用虚拟机装的RHEL4.8版,装好mono后,运行.net程序总是报错,根据错误提示,安装libgdiplus组件老是不成功,最后安装好yum客户端,却还是有各种错误,最后我重新装了RHEL5.5的linux版本,用yum才装好很多需要的组件。Linux系统安装好后,安装mono2.8.2,分别提示需要安装gcc,g++环境,可以直接下载相应的rpm包自己安装,但rpm包有依赖关系,很 阅读全文
posted @ 2011-02-11 22:12 Lawson 阅读(1432) 评论(1) 推荐(0)
摘要: 年前开始在看mono方面的资料,希望能把自己开发的和公司开发的winform和mvc的web程序部署上去,即使不实际应用,但先测试下性能吧。今天晚上终于弄好了,把我以前的.net3.5下面程序在我虚拟机装的RHEL5.5里运行起了,linux里装的Mono2.8.2,目前的最新版本。下面弄一个截图,我在Linux下面运行以前写的网站监控程序的界面:现在大体看了下,mono支持得还比较好,听说mono2.8.2已经支持.net4.0的特性了,wcf也都支持,以后会实施部署.net4.0下的mvc网站和wcf试试。 阅读全文
posted @ 2011-02-10 23:21 Lawson 阅读(7927) 评论(0) 推荐(1)
摘要: 很早看到windbg+sos方面的知识,一直没仔细学习,也许因为自己做的系统还不够复杂,也没线上真实环境查看的权限,一直没学习这方面的知识,最近几天仔细找了这方面的资料,自己也写了个可能造成高CPU高内存的测试web页面,发现确实不错,即使一个生手,也可以用工具连蒙带骗的猜出哪里出了问题,当然对一些命令和内部标示更熟悉了后,可以更好的找出问题所在,非常值得学习。我在使用过程中,也遇到大量问题,比如系统兼容,软件版本,.net版本等,部分我也没能理解清楚,但现在确实用它找到了程序的问题,因此作个记录,为以后自己或大家查阅资料提供一定的方便。基本工作:我用的windbg是6.11.1.404的32 阅读全文
posted @ 2011-01-23 22:09 Lawson 阅读(4649) 评论(1) 推荐(1)
摘要: 当一个网站访问量比较大后,除了对功能和逻辑更合理的实现,还需要关注服务器的负载,对请求数量的处理和配置,这个方面也没找到很多明确说明的资料,根据自己的理解和网络的资料,整理了一下理论知识,为以后自己或大家做具体设置和配置的时候,希望能作出一定的帮助。下面基本都是自己的理解,有理论的,有具体配置的,为了不误导我和更多的人,如大家发现不对,请批评指证。asp.net并发请求数量影响的条件相当多,不考虑程序执行时间和是否被阻塞,它会受到服务器tcp(一般windows服务器好像没限制)连接数限制,iis连接数限制,CLR线程池对它的限制。服务器TCP限制,[HKLM\SYSTEM\CurrentCo 阅读全文
posted @ 2011-01-18 22:31 Lawson 阅读(3690) 评论(2) 推荐(1)
摘要: 任意两个对象,对他们存在相同的字段赋值,字段包括普通property,其他类对象,父类的property。由于是任意对象,不知道类型,因此一般的做法是直接调用反射,spring.net内部封装了任意对象赋值的方法,但是经过我的测试,发现它的速度比直接反射还慢,不知道是自己哪里没有优化,还是方法执行有问题,粗略看了一下spring.net内部源代码,发现它自己实现了表达式树和AST来解析它的包装对象,没太看明白,如果有谁之前研究过,可以分享一些技术文章出来。本次用直接反射,Spring.net的ObjectWrapper和jeffreyzhao的FastReflectionLib http:// 阅读全文
posted @ 2010-12-25 19:39 Lawson 阅读(929) 评论(0) 推荐(0)
摘要: 本文不讲这3大框架的内部实现原理,只是提供了一个demo,分别实现了它们实现注入属性、拦截消息的例子,以写日志为例,写日志方式用异步还是同步ILogType作为写日志方式,注入日志存放地方ILogStore来演示基本的aop、ioc功能。spring.net用的1.3.1,官网http://www.springframework.net/,castle windsor用的2.5.2,官网http://www.castleproject.org/,unity用的2.0,它是微软开源项目,可在http://unity.codeplex.com/下载,该demo用的这3大框架里的依赖注入容器均为最新 阅读全文
posted @ 2010-12-21 20:34 Lawson 阅读(2387) 评论(0) 推荐(1)
摘要: 本来打算主键ID用触发器生成,因为程序只需要一次IO就能插入一条数据。图在下面,这里assigned不能改为native,从配置中看,是程序来生成ID,但实际oracle接受到插入消息后,触发器自动用序列替换了ID,因此遇到一个问题,就是程序不能获取到刚才插入的实体的主键ID,于是改为配置文件中指定序列创建ID,为了看它生成的sql和连接数据库的IO次数,我用NHibernateProfiler和sql server profiler进行了检测,oracle没找到好的检测连接sql的工具,因此用mssql的检测工具检测了下。用NHibernateProfiler检测生成sql时,迷惑了我,由于 阅读全文
posted @ 2010-12-05 19:35 Lawson 阅读(954) 评论(0) 推荐(0)