sql查询速度问题是这个正常的

时间:2012-04-18 05:47:35

标签: json sql-server-2008 linq-to-sql subsonic3

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分钟。

根据这些信息,您能告诉我这是处理这些数据的正常时间吗?

如果您需要任何其他详细信息,请与我联系。

谢谢

1 个答案:

答案 0 :(得分:0)

  

基于此信息,您可以告诉我这是否是正常时间   处理这些数据?

如果没有任何关于代码,环境,数据库大小等的详细信息,这是不可能的。

然而,对我而言似乎需要很多时间。

您需要启动性能分析以找出导致问题的部分。它是数据库,它是数据的处理,是网格的创建还是它的全部。

分解整个过程并检查导致延迟的原因。

现在,如果它是数据库:配置文件发送到数据库的sql。也许你可以创建更有效的查询(一步加载所有数据而不是一个一个,也许你需要查看索引?也许你的数据库对于sql server express来说太大了(它有内存限制,只会使用一个)核心,无论物理服务器有多大。)

由于您提到linq-to-sql,请密切关注延迟加载数据导致的n + 1问题。在这种情况下,请阅读DbLoadOptions LoadWith

您需要对代码执行类似的步骤,直到找到导致问题的原因