摘要: 今天闲来无事优化了一下框架里的累加器类。 累加器顾名思义就是当基数累加到一定数量后在做相应的处理。比如我们在开发一套日访问量在200WPV左右的应用时总是会考虑到访问量统计的优化,一个PV UPDATE一次数据库会有灾难性的后果。 第一版的累加器是用缓存做的。每次累加记录从缓存里获取当前量,累加后判断总数是否达标,OK的话UPDATE一次数据库。这样的处理方式在流程上没有问题,弊端就是因为每个存储的KEY不同,会再内存里储存很多内存片段。 所以我考虑能不能用单例模式+事件的方式解决这个问题,下面是我写的代码:public class Summation { privat... 阅读全文
posted @ 2011-09-16 10:55 菜光 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 中午饥肠辘辘等待万恶的必胜宅急送送餐的过程中,试着在电脑上用Apache运行了一下.NET3.5应用。 所用到的软件: apache安装包:httpd-2.2.15-win32-x86-no_ssl.msi 下载地址: http://httpd.apache.org/download.cgi#apache22 mod_aspdotnet安裝包:mod_aspdotnet-2.2.0.2006-setup-r2.msi 下载地址:http://sourceforge.net/projects/mod-aspdotnet/ 安装过程就不说了地球人都会,主要是配置文件,如下:#asp.net Lo. 阅读全文
posted @ 2011-08-18 14:46 菜光 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 山人我最近遇到一件很纠结的事情,就是如何快速的从数据表里随机抽取一条数据。 我生成了一个简单的数据表,并且导入了500W条数据进行测试。 下图为第一次采用的SQL语句:Declare @d DatetimeSet @d=getdate()SELECT top 1[ActivityID] ,[CardNo] ,[Password] ,[State] ,[CreateTime] ,[GetTime]FROM [TGBus_Card].[dbo].[Ka_Card] Where ActivityID = 501 And State = 0 Order By NEWID()Select [语句执行花. 阅读全文
posted @ 2011-07-26 16:48 菜光 阅读(1589) 评论(3) 推荐(1) 编辑
摘要: 最近在做一个网游发号系统。需求很简单,就是将厂商给的N个卡号导入到库里在固定的时间为用户提供领取。这个系统最大的亮点应该就是这个N的不确定性,不同的厂商提供的卡数量不同,N可能是10也可能是10W。下图是表结构 山人我做了一个简单的测试,在这个表里插入2000W条数据,然后根据ActivityID随机查询一条数据出来,居然需要4秒多。。于是决定尝试用分区表来优化查询效率。 分区函数如下:CREATE PARTITION FUNCTION [Card_PF](int)AS RANGE LEFT FOR VALUES (500, 1000, 1500, 2000, 2500, 3000) 这里我. 阅读全文
posted @ 2011-07-20 14:36 菜光 阅读(597) 评论(0) 推荐(0) 编辑