使用下面优化方式,可以大幅提高服务器相应能力,对低配置服务器最显著,对高性能服务器在巨量接入负载时也会有显著性能提升
修改表结构
Muonline的joinlog表,修改如下
servername修改为 char,长度20
ip修改为 char,长度15
然后建立或修改以下存储过程
1:登陆连接用
CREATE PROCEDURE WZ_CONNECT_MEMB
@uid varchar(20),
@Server varchar(10),
@uip varchar(15)
AS
Begin
Declare @dtToday datetime
select @dtToday={fn CURDATE()}
select @dtToday
set nocount on
if exists(select * from Uselog where id=@uid)
begin
update Uselog set State= 上线 where id=@uid
INSERT INTO joinlog( ServerName,id,state,ip,sdatetime) values (@Server,@uid,上线,@uip,@dtToday)
if(@@error <> 0)
begin
rollback
select-1
end
else
begin
commit
select @uid
end
end
else
begin
INSERT INTO Uselog ( ServerName,id,ip,State) values ( @Server , @uid, @uip,上线)
INSERT INTO joinlog( ServerName,id,state,ip,sdatetime) values (@Server,@uid,上线,@uip,@dtToday)
end
end
GO
2:注销登陆用
CREATE PROCEDURE WZ_DISCONNECT_MEMB
@uid varchar(10)
AS
Begin
DECLARE @uidl varchar(10)
Declare @dtToday datetime
Declare @logindate datetime
Declare @uip varchar(15)
Declare @Server varchar(15)
select @dtToday={fn CURDATE()}
select @dtToday
set nocount on
begin transaction
update Uselog set State= 下线 where id=@uid
INSERT INTO joinlog(id,state,sdatetime) values (@uid,下线,@dtToday)
if(@@error <> 0)
begin
rollback transaction
select-1
end
else
begin
commit transaction
select @uid
end
end
GO
建立索引
1:仓库索引
CREATE
INDEX [warehouse_accountid_index] ON [dbo].[warehouse] ([AccountID])
WITH
DROP_EXISTING
ON [PRIMARY]
2:角色选择画面索引
CREATE
INDEX [accountcharactet_id_index] ON [dbo].[AccountCharacter] ([Id])
WITH
DROP_EXISTING
ON [PRIMARY]
3:角色索引
CREATE UNIQUE
INDEX [pk_character_index_wy] ON [dbo].[Character] ([AccountID] desc , [Name] desc , [Money])
WITH
DROP_EXISTING
ON [PRIMARY]
4:角色登陆索引
CREATE
INDEX [pk_membpwd_index] ON [dbo].[MEMB_INFO] ([memb__pwd])
WITH
DROP_EXISTING
ON [PRIMARY]
以上代码分别在查询分析器里执行,执行后登陆看看,打开仓库看看,速度如何:)
注意
下列命令是如果系统中存在则删除已存在的索引
WITH
DROP_EXISTING
ON [PRIMARY]
如果没有,删除自然出错并返回
服务器: 消息 7999,级别 16,状态 9,行 1
未能找到任何名为 warehouse_accountid_index 的索引(属于表 warehouse)
删除建立索引命令内的
WITH
DROP_EXISTING
ON [PRIMARY]
这部分再运行就可以了。
另外建立索引可以加快服务器数据库查询速度,应该可以在解决由于延迟导致的复制问题