打開倉庫慢的解決方法
服務器數據庫完全優化指南,提速提速再提速
使用下面優化方式,可以大幅提高服務器相應能力,對低配置服務器最顯著,對高性能服務器在巨量接入負載時也會有顯著性能提升
1:登陸連接用 CREATE PROCEDURE WZ_CONNECT_MEMB
@uid varchar(20), @server varchar(20), @uip varchar(20) AS
Begin
BEGIN TRANSACTION
SET NOCOUNT ON
IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED) WHERE memb___id = @uid ) Begin UPDATE MEMB_STAT SET ip = @uip , connectstat = 1 , servername = @server , ConnectTM = (getdate()) WHERE memb___id = @uid End ELSE Begin INSERT INTO MEMB_STAT ( memb___id,ip,connectstat,servername) valueS ( @uid, @uip, 1, @server ) End
IF(@@Error <> 0 ) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION
SET NOCOUNT OFF End
GO
2:注銷登陸用 CREATE PROCEDURE WZ_DISCONNECT_MEMB
@uid varchar(20) AS Begin
BEGIN TRANSACTION
SET NOCOUNT ON
IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED) WHERE memb___id = @uid ) Begin UPDATE MEMB_STAT SET DisConnectTM = (getdate()), connectstat = 0 WHERE memb___id = @uid End ELSE Begin INSERT INTO MEMB_STAT ( memb___id,DisConnectTM,connectstat) valueS ( @uid, (getdate()), 0 ) End
IF(@@Error <> 0 ) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION
SET NOCOUNT OFF 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] 以上代碼分別在查詢分析器里執行,執行后登陸看看,打開倉庫看看,速度如何:) 5:在我們的表上建一些索引 我們的表有web2_Card,WEB_開頭的都是我們新建的!你建一些索引就行了
注意 下列命令是如果系統中存在則刪除已存在的索引 WITH DROP_EXISTING ON [PRIMARY] 如果沒有,刪除自然出錯并返回
服務器: 消息 7999,級別 16,狀態 9,行 1 未能找到任何名為 warehouse_accountid_index 的索引(屬于表 warehouse)
刪除建立索引命令內的 WITH DROP_EXISTING ON [PRIMARY] 這部分再運行就可以了。 另外建立索引可以加快服務器數據庫查詢速度,應該可以在解決由于延遲導致的復制問題
|