优化MSSQL数据库

时间:2013-12-03 14:04:34

标签: c# asp.net sql-server

简单地说,我想解释一下我的项目。

我已经建立了一个电子商务网站(ASP.NET C#MSSQL),要求用户在付款之前注册(如果他们没有注册的话)。

每当用户注册时,使用C#自动创建1个表。此表的目的是存储购物车项目的数据。我认为这会使购物车项目/表格所需的逻辑更容易。最近我意识到这种逻辑的影响。目前我有735个用户,这意味着735个桌面。所以我的表总数是785(包括我用于整个网站的50个表)。现在看来我的网站变得越来越慢,有时,当用户注册时,没有创建购物车表。因此,出现意外错误。到目前为止,有8个用户没有为其创建购物车表。我不得不手动创建它们。

我的假设是,由于数据库中的表格数量,我的网站变慢了。

伙计们,请帮助我理解我的问题,如果可能,请给我建议或建议,以便我可以优化我的数据库和网站。是否存在限制,例如每个数据库可以创建多少个表?

感谢您的时间和关注。

3 个答案:

答案 0 :(得分:2)

使用一个"购物车"表,存储该表中所有用户的所有购物车项目。通过使用绑定到特定用户的cartID来区分不同的购物车。

答案 1 :(得分:1)

这是糟糕的数据库设计。您(几乎?)永远不必动态创建表。创建一个“购物车”表并添加用户ID字段。为每个人使用该表。修改您的查询以按用户ID进行过滤。

表的数量没有限制。您可以拥有超过20亿个数据库对象:http://technet.microsoft.com/en-us/library/ms143432.aspx

是否花时间将数据传输到新的单表...最终将是值得的。您当前的方法(创建对象,权限,索引,优化等)会产生巨大的开销。

答案 2 :(得分:0)

首先,购物车设计只是错误,应该更改。

我强烈怀疑,如果你已经选择了那种“购物车”设计,这表明(想想如何妥善表达)......一定程度的经验可能会让你做出许多其他糟糕的设计选择

性能问题可以相关,但如果没有分析,就无法确定。坦率地说,有各种方法可以使系统变慢。考虑使用像mini-profiler这样的工具,它可以帮助您了解代码行为缓慢的行为。