ASP.NET(C#)和Sql2005组合性能问题研究
我现在遇到两个性能问题,请大家一起研究!~
第一个问题:
我们网站的信息系统,每天新增100W条用户数据,不知道如果解决才能查询更新
更快,更合理
现有做法
我们现在用Sql 2005已经按用户做过表分区了,每个表分区中每天有5W新增数
据.并且分区也不能的磁盘中,I/O也不是题,但就是因为数据量很大,如果我们只保存用
户3天内的聊天交友信息,数据量一定很稳定,但现在我们要保存数据1个月,也就是表中
有3000W条数据信息.查询很慢.
表结构如下:
CREATE TABLE [dbo].[tb_message_new](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Userid] [int] NOT NULL,
[Userid_from] [int] NULL DEFAULT ((0)),
[UserName_from] [varchar](30) DEFAULT (''),
[Msgtype] [int] NULL DEFAULT ((0)),
[Content] [varchar](500) DEFAULT (''),
[Msgurl] [varchar](200) DEFAULT (''),
[Status] [int] NULL DEFAULT ((0)),
[Submit_time] [datetime] NULL DEFAULT (getdate()), CONSTRAINT
[PK_tb_message_new] PRIMARY KEY NONCLUSTERED (
[ID] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [UserScheme]([Userid])
ID是主键
并且对userid,userid_frim,submit_time 做了索引
[ID] [int] IDENTITY(1,1) NOT NULL,
[Userid] [int] NOT NULL,
[Userid_from] [int] NULL DEFAULT ((0)),
[UserName_from] [varchar](30) DEFAULT (''),
[Msgtype] [int] NULL DEFAULT ((0)),
[Content] [varchar](500) DEFAULT (''),
[Msgurl] [varchar](200) DEFAULT (''),
[Status] [int] NULL DEFAULT ((0)),
[Submit_time] [datetime] NULL DEFAULT (getdate()), CONSTRAINT
[PK_tb_message_new] PRIMARY KEY NONCLUSTERED (
[ID] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [UserScheme]([Userid])
ID是主键
并且对userid,userid_frim,submit_time 做了索引
第二个问题:
当我闪公告或推荐一个条新闻数据,同时会有1W个用户并发查看(并发用户),我们的统计是每次+1,现在数
据库更新时有问题了,排队更新,速度太慢.
我们现在想在程序中做统计,不进行数据库统计,每次在程序中+1,加到100后,
再更新一次数据库,程序这边数据清0.
但这样统计,数据有点不准确.
以上是我们现在的方法,如果有更好的,还请各位大师指教..