• 3350阅读
  • 2回复

服务器数据库优化指南 [复制链接]

上一主题 下一主题
 
发帖
1272
祝福宝石
0
威望
2160
玛雅之石
0
创造宝石
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2004-07-22

使用下面优化方式,可以大幅提高服务器相应能力,对低配置服务器最显著,对高性能服务器在巨量接入负载时也会有显著性能提升

修改表结构
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]
这部分再运行就可以了。
另外建立索引可以加快服务器数据库查询速度,应该可以在解决由于延迟导致的复制问题
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线网络联盟
发帖
194
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 沙发  发表于: 2004-08-01

不懂意思

Http://Www.Zdxnet.Com
离线笨笨小强
发帖
355
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 板凳  发表于: 2005-08-25

1:登陆连接用

2:注销登陆用

改后,但是转生出现角色在线,网站无法显示在线人数。

快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个

      管理员联系信箱 [email protected] 所有内容均来之互联网,如侵犯您的隐私和权益,请和我们及时联系!