net mvc 2应用程序与sql server express数据库。
我的应用程序用于估计围栏安装项目。用户在flash绘图中绘制所有围栅项,输出xml文件。
使用此数据,用户可以向他们制作的图像中的每个元素添加项目。基本上他们使用Posts,Fence和Gate项目绘制任何类型的配置。
添加绘图元素后。每个元素都有一个“商品价格”
可以添加到每个帖子围栏或门的项目类型是:
- 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
这是计算一次劳动的公式。材料,设备和分包合同等其他元素的公式非常相似。
所以估计看起来像这样:
在这个例子中,我画了一块围栏,中间有一扇门。从该图创建的数据如下:
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**
然后下一篇文章EACH有这些元素
**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分钟。
根据这些信息,您能告诉我这是处理这些数据的正常时间吗?
如果您需要任何其他详细信息,请与我联系。
谢谢
答案 0 :(得分:0)
基于此信息,您可以告诉我这是否是正常时间 处理这些数据?
如果没有任何关于代码,环境,数据库大小等的详细信息,这是不可能的。
然而,对我而言似乎需要很多时间。
您需要启动性能分析以找出导致问题的部分。它是数据库,它是数据的处理,是网格的创建还是它的全部。
分解整个过程并检查导致延迟的原因。
现在,如果它是数据库:配置文件发送到数据库的sql。也许你可以创建更有效的查询(一步加载所有数据而不是一个一个,也许你需要查看索引?也许你的数据库对于sql server express来说太大了(它有内存限制,只会使用一个)核心,无论物理服务器有多大。)
由于您提到linq-to-sql,请密切关注延迟加载数据导致的n + 1问题。在这种情况下,请阅读DbLoadOptions
LoadWith
。
您需要对代码执行类似的步骤,直到找到导致问题的原因