net mvc 2应用程序,具有sql服务器快速数据库。
我的应用程序用于评估围栏安装项目。用户在输出xml文件的flash绘图中绘制所有围栏项。
使用这些数据,用户可以将项添加到他们创建的图像中的每个元素中。基本上,他们画任何类型的配置使用柱子,栅栏和门项目。
在添加绘图元素之后。每个元素都有一个“项目价格”。
可以添加到每个柱子、栅栏或门上的项目类型如下:
- Labor
- Material
- Equipment
- Subcontracts每个人都有一个计算价格的公式。每个项目的最终价格来自于应用程序预算中添加的定价值。这是一个如何计算每一个的例子。
Labour1 = qty(user enters this) * unit cost * profit (comes from budget)
unit cost = hour rate(from budget) - discount % (user enters it) * labor burden %(user enters it) * Shipping %(User enters it) * Tax (comes from main application tax setup)
* overhead markup % ( from budget) * profit (from budget) = item price 这是计算1人工的公式。其他要素,如材料、设备和分包合同的公式非常相似。
所以估计会是这样的:
在这个例子中,我画了一道栅栏,中间有一扇门。从此图表创建的数据如下所示:
Fence = F1
Gate= G1
Post= P1
Post = P2
Post = P3
Post = P4为了找到这项工作的最终价格(小计),我添加了所有的栅栏,大门和最后的价格。
**Fence F1**
Material = $120
Material 2= 115
Labor 1= $134
Labor 2= $100
Equipment 1= $100
Equipment 2 = $150
Subcontract 1 = $120
Subcontract 2 = $100
**TOTAL FENCE ITEMS= $939**门G1
Mat 1= $100
Labor 1= $200
Equip 1= $400
Subcontract 1= $250
**TOTAL GATES= $950**然后下一篇文章每个都有以下元素
**P1, P2 P3 P4**
Material 1 = 250 (x4)
equipment 1= $250 (x4)
labor 1 = $100 (x4)
subcontract 1= $200 (x4)
**Total POSTS = $3200**
Total Estimate Price = 939 + 950 +3200 = $5,089任何估计数都可以有一个以上的栅栏门或柱子。但基本上,对于任何栅栏门或柱子,你可以添加尽可能多的材料,设备,劳动力和分包合同。
前面的例子只是一个典型的例子,但其他一些估计可以包括多达30或40个项目的总数。
我有一个jqgrid,它加载了客户信息和其他通用列,最后一栏是Price:
现在,如果我有大约50个类似于上面的例子的估计,我的网格需要大约45秒的时间来加载。
每年将有超过500个估计数显示在这个网格中。
因此,在这个数字下,一次用500加载这个网格需要超过5分钟。
根据这些信息,你能告诉我现在是否是处理这些数据的正常时间吗?
如果你需要任何其他细节给我建议,请告诉我。
谢谢
发布于 2012-04-18 07:53:41
基于这个信息的
,你能告诉我现在是否是处理这些数据的正常时间吗?
如果没有您的代码、环境、数据库大小等更多的细节,这是不可能的。
然而,对我来说,这似乎是一段很长的时间。
您需要启动 problem ,以找出造成问题的部分。是数据库,还是数据的处理,是网格的创建,还是全部。
因此,分解整个过程并检查是什么导致了延迟。
现在,如果是数据库:配置文件,则将sql发送到数据库。也许您可以创建更高效的查询(将所有数据一步一步地加载,而不是一个接一个地加载,也许您需要查看索引?也许您的数据库对于server来说太大了(它有内存限制,并且将只使用一个核心,不管物理服务器有多大)。
既然您提到linq,请密切关注延迟加载的数据所造成的n+1问题。在这种情况下,请阅读DbLoadOptions LoadWith。
在找到导致问题的原因之前,您需要对代码执行类似的步骤。
https://stackoverflow.com/questions/10203525
复制相似问题