【发布时间】:2015-07-21 08:21:43
【问题描述】:
我有一个使用 ASP.NET MVC 创建的新闻网站。
下面是我的桌子:
CREATE TABLE [dbo].[News] (
[NewsID] INT IDENTITY (1, 1) NOT NULL,
[InstitutionID] INT NOT NULL,
[Title] NVARCHAR (450) NOT NULL,
[NewsDate] DATETIME NOT NULL,
[Description] NVARCHAR (MAX) NULL,
[path] NVARCHAR (MAX) NULL,
[PostedBy] NVARCHAR (MAX) NULL,
[ContactPhone] NVARCHAR (MAX) NULL,
[ContactEmail] NVARCHAR (MAX) NULL,
[NewsExpiryDate] DATETIME NOT NULL,
CONSTRAINT [PK_dbo.News] PRIMARY KEY CLUSTERED ([NewsID] ASC),
CONSTRAINT [FK_dbo.News_dbo.state_InstitutionID] FOREIGN KEY ([InstitutionID]) REFERENCES [dbo].[state] ([InstitutionID]) ON DELETE CASCADE );
我注意到我的数据库已增加到 8GB,加载页面变得越来越慢。
我正在考虑将新闻存储在文件中,然后将路径保存在数据库中。
无论如何我可以将表示“[Description]”的表单值转换为文件,然后将路径存储到我的数据库?
【问题讨论】:
-
我想我会花一些时间来了解占用空间的内容例如,您真的需要所有
NVARCHAR(MAX)列那么大吗?我无法想象你为什么需要这么大的电话号码和电子邮件。而且您似乎没有存储任何二进制数据。最后,你确定这是 data 大小并且不包括 log 大小吗? -
"Slower to load the page"...我将首先测量/分析用于加载页面的代码和 SQL 查询并确定瓶颈所在。只要您不扫描所有 8GB 以显示一页,数据库的大小并不重要。 -
数据库的大小很少是性能瓶颈。特别是考虑到你的说法,它随着它的增长而变得越来越慢。正如弗拉基米尔所说,剖析它。然后你就会确切地知道问题是什么。我会在它与错误查询有关的情况下投入大量资金。
标签: c# asp.net sql-server asp.net-mvc-4 filepath