ALTER procedure [dbo].[P_InsertChatMsg]
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
ASDeclare @UID bigint
Select @UID=[UID] from TB_Users where (ConnService=Cast(@SUserID as varchar) or ClientID=Cast(@SUserID as varchar)) and (ConnService=Cast(@RUserID as Varchar) or ClientID=Cast(@RUserID as Varchar)) and GoneTime is null
if @UID<>0
Begin
Insert Into TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
Values (@SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,@UID)
End注: 存储过程访问比较频繁
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
ASDeclare @UID bigint
Select @UID=[UID] from TB_Users where (ConnService=Cast(@SUserID as varchar) or ClientID=Cast(@SUserID as varchar)) and (ConnService=Cast(@RUserID as Varchar) or ClientID=Cast(@RUserID as Varchar)) and GoneTime is null
if @UID<>0
Begin
Insert Into TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
Values (@SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,@UID)
End注: 存储过程访问比较频繁
ALTER procedure [dbo].[P_InsertChatMsg]
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
AS Declare @UID bigint Select @UID=[UID]
from TB_Users
where (ConnService=Cast(@SUserID as varchar) or ClientID=Cast(@SUserID as varchar))
and (ConnService=Cast(@RUserID as Varchar) or ClientID=Cast(@RUserID as Varchar)) and GoneTime is null
if exists(Select 1 from TB_Users
where (ConnService=Cast(@SUserID as varchar) or ClientID=Cast(@SUserID as varchar))
and (ConnService=Cast(@RUserID as Varchar) or ClientID=Cast(@RUserID as Varchar)) and GoneTime is null) Begin
Insert Into TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
Values (@SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,@UID)
End --只能这样咯.看高手
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
AS Declare @UID bigint
Select @UID=[UID] from TB_Users where ConnService in (Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) or ClientID in(Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) and GoneTime is null
if @UID <>0
Begin
Insert Into TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
Values (@SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,@UID)
End
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
AS
BEGIN
select
@SUserID,@RUserID,@SContent,@WordTime,[UID],@ObjectSend,[UID]
from
TB_Users
where
(ConnService=Cast(@SUserID as varchar) or ClientID=Cast(@SUserID as varchar)) and (ConnService=Cast(@RUserID as Varchar) or ClientID=Cast(@RUserID as Varchar)) and GoneTime is null)
END
GO
ALTER procedure [dbo].[P_InsertChatMsg]
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
AS
Declare @UID bigint
if exists( Select [UID] from TB_Users where ConnService in (Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) or ClientID in(Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) and GoneTime is null)
Insert Into TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
Values (@SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,@UID)
ALTER procedure [dbo].[P_InsertChatMsg]
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
AS
begin
insert TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
select @SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,[UID]
from TB_Users
where GoneTime is null
and [UID]!=0
and (ConnService=Cast(@SUserID as varchar) or ClientID=Cast(@SUserID as varchar))
and (ConnService=Cast(@RUserID as Varchar) or ClientID=Cast(@RUserID as Varchar))
end
TB_MsgTemp0 表
TB_Users 的数据量有多大?都有些什么索引?
ALTER procedure [dbo].[P_InsertChatMsg]
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
AS
Declare @UID bigint
if exists( Select [UID]=[UID] from TB_Users where ConnService in (Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) or ClientID in(Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) and GoneTime is null)
Insert Into TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
Values (@SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,@UID)
ALTER procedure [dbo].[P_InsertChatMsg]
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
AS Declare @UID bigint
Select @UID=[UID] from TB_Users where ConnService in (Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) or ClientID in(Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) and GoneTime is null Insert Into TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
select @SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,@UID where @UID<>0
ALTER procedure [dbo].[P_InsertChatMsg]
@SUserID decimal,
@RUserID decimal,
@SContent varchar(8000),
@WordTime datetime,
@ObjectSend int
AS Declare @UID bigint
Select @UID=[UID] from TB_Users where ConnService in (Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) or ClientID in(Cast(@SUserID as varchar),Cast(@RUserID as Varchar)) and GoneTime is null Insert Into TB_MsgTemp0 (SUserID,RUserID,SContent,WordTime,MsgID,ObjectSend,[UID])
select @SUserID,@RUserID,@SContent,@WordTime,@UID,@ObjectSend,@UID where @UID<>0
速度还要更慢些