首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

提高数据分析的效率,减少分析时间,该如何处理

2012-04-20 
提高数据分析的效率,减少分析时间我做的是一个彩票双色球项目,希望当用户投注的号码数据量达到10w、100w或

提高数据分析的效率,减少分析时间
我做的是一个彩票双色球项目,希望当用户投注的号码数据量达到10w、100w或更多时,当开奖时,通过分析用户是否中奖的时间减少!!!
希望高手能给个解决方案,再次了!!!期待着您的解决方法!!!!

[解决办法]
首先,你在插入用户投注号码的时候,对红球排一下序,然后比较的时候,也先对中奖红球排下序,剩下的问题就是求两个数组相同的数字有几个的问题。
这里有一段代码是我测试的结果:

C# code
static void Test(){    int[] winNumRed = new int[] { 7, 10, 19, 25, 26, 33 };    int winNumBlue = 8;    DateTime startDate = DateTime.Now;    for (int i = 0; i < 10000000; ++i)    {        int[] selectedNumRed = new int[] { 1, 8, 12, 27, 29, 32 };        int selectedBlue = 12;        int redNum = 0;        // 方法一        int j = 0, k = 0;        while (j < 6 && k < 6)        {            int jNum = selectedNumRed[j];            int kNum = winNumRed[k];            if (jNum < kNum)                ++j;            else if (jNum == kNum)            {                ++redNum;                ++j;                ++k;            }            else                ++k;        }        // 方法二        //for (int j = 0; j < 6; ++j)        //{        //    if (winNumRed.Contains(selectedNumRed[j]))        //        ++redNum;                        //}        bool blueFlag = winNumBlue == selectedBlue;    }    DateTime endDate = DateTime.Now;    Console.WriteLine(endDate - startDate);}
[解决办法]
SQL 代理不是程序,是 SQL Server 提供的一个服务,类似于 Windows 的定时任务,你可以在代理中启动存储过程、执行定时备份等等,对于你的问题,你可以看下这篇文章:
http://www.cnblogs.com/jasmine_xm/archive/2010/07/21/1782601.html
[解决办法]
还有,你也可以用触发器来实现,当插入开奖数据后就触发。不过我觉得还是代理好些,大数据量的处理最好放在深夜来执行,不可能让人在深夜巴巴地等着去插入开奖数据吧。

热点排行