Sql server 2005 另一个通过web服务调用数据的。有些代码是用C#编写的,但也有一些Delphi/WIN32代码连接到同一个数据库。另外,当通过网络发送数据时,长文本会增加记录大小的开销。我知道,使用存储过程或函数当然不会太慢,但肯定会比在表示层中慢,虽然我同意你关于大文本

Sql server 2005 另一个通过web服务调用数据的。有些代码是用C#编写的,但也有一些Delphi/WIN32代码连接到同一个数据库。另外,当通过网络发送数据时,长文本会增加记录大小的开销。我知道,使用存储过程或函数当然不会太慢,但肯定会比在表示层中慢,虽然我同意你关于大文本,sql-server-2005,Sql Server 2005,另一个通过web服务调用数据的。有些代码是用C#编写的,但也有一些Delphi/WIN32代码连接到同一个数据库。另外,当通过网络发送数据时,长文本会增加记录大小的开销。我知道,使用存储过程或函数当然不会太慢,但肯定会比在表示层中慢,虽然我同意你关于大文本数据产生的网络流量烦恼的看法,但是网络流量可能会变得非常糟糕,因为这个日志表可能有1000多条记录,每条记录中都有一条长文本。系统和网络都有点陈旧和缓慢,所以我需要从某处获得一些性能。剥离服务器上的开销会将总大小减少到75%左右,这是一个加号。


另一个通过web服务调用数据的。有些代码是用C#编写的,但也有一些Delphi/WIN32代码连接到同一个数据库。另外,当通过网络发送数据时,长文本会增加记录大小的开销。我知道,使用存储过程或函数当然不会太慢,但肯定会比在表示层中慢,虽然我同意你关于大文本数据产生的网络流量烦恼的看法,但是网络流量可能会变得非常糟糕,因为这个日志表可能有1000多条记录,每条记录中都有一条长文本。系统和网络都有点陈旧和缓慢,所以我需要从某处获得一些性能。剥离服务器上的开销会将总大小减少到75%左右,这是一个加号。不过,多个表示层是最大的问题。应该有一个中间层,有些人确实共享一个中间层。只是不是全部。。。最大的问题是当两个或多个不同的应用程序请求所有记录时,几乎拒绝使用服务器。。。
 - System.Web.HttpException: The client
   disconnected. --->
   System.Web.UI.ViewStateException:
   Invalid viewstate. Client IP:
   xxx.xxx.xxx.xxx Port: xxxx
   User-Agent: Mozilla/4.0 (compatible;
   MSIE 7.0; Windows NT 6.1; WOW64;
   Trident/4.0; SLCC2; .NET CLR
   2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C;
   .NET4.0E) ViewState:
   T89RiGYTOALETOKughad85KzoDRo/ut3Vlnd1qECsYf1t9GGNilDrvbRn8l45SVX8AsZrs6zyEngk8MKdpoRecI4j0X5IsmI0Deldf4nLKNlLoE4xaOoMUlj7hTFRXAvqyOFSvzsvyhwpWCLuG26RJT4YbGr1IJYgqWX9KVplIdasDUR0aNNMvD9FVa8Fi33Ny7fuIjxPKMpqKByKYJtAgZU4PIji88MMQWQDMNZmBxM965+bN+RsvTSxrGWzLLhzFCrK0LeCCrZeRQyncmMhUPGM9YB1+UapRfeca3R4vCacN6vv/UnZekBXP5rzAvDgJB9RGgXKhhdBVeCCD3h2N6X5RxKKLdy76h3AVZ8H8DfJpdjvre8ExNdkHeCOZWz0EjyX9hNMe2KZ2+gmEQaFi/mNJ5nZzCjOCfYsdbwAorpEGBZNqX9gBjDs32e8Admgdk+zvxl3Mt4pF3e6zTh45N1cCjBNCLya6Rd9d9mfiPM6DFbXUBiXw8dbZmT/6veCw0YPfRCjKCod3D7+Kva44RuiIkKIIqr0vPLLlja/ggH/4iHq9SqgOpwGJuoHGfy++5G14bIv3Zyzm8Vj+re3iMfbwZCUI4sCeFy7L7I6NrL27pd+6Qz60WAMv6lPl3Y88J5CUIVAIZqINsOt5htisTf00+d0pFptx5wwlmprzm1dVfXcL/0x3BPvlNDof5aW+PJxAP19SHR+PUuAEm9YO0ZmhGg+L5+DN2kuHSpQFpwC6FxCzVdicxlR8+x4jUy2+Fxeblabla
 - System.Web.HttpException: The client
   disconnected. --->
   System.Web.UI.ViewStateException:
   Invalid viewstate. Client IP:
   xxx.xxx.xxx.xxx Port: xxxx
   User-Agent: Mozilla/4.0 (compatible;
   MSIE 7.0; Windows NT 6.1; WOW64;
   Trident/4.0; SLCC2; .NET CLR
   2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C;
   .NET4.0E) ViewState: T89...bla
CREATE FUNCTION dbo.Split(@String varchar(8000), @Delimiter char(1))     
returns @temptable TABLE (items varchar(8000))     
as     
begin
    declare @idx int     
    declare @slice varchar(8000)

    select @idx = 1     
    if len(@String) < 1 or @String is null  return     

    while @idx != 0    
    begin     
       set @idx = charindex(@Delimiter, @String)     
       if @idx != 0     
         set @slice = left(@String, @idx - 1)     
       else     
         set @slice = @String     

       if(len(@slice) > 0)
         insert into @temptable(Items) values(@slice)     

       set @String = right(@String, len(@String) - @idx)     
       if len(@String) = 0 break     
     end 
     return     
end
SELECT 
(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
        (SELECT (CASE WHEN LEN(items) > 50 
                 THEN LEFT(items, 3) + '...'  + RIGHT(items, 3) 
                 ELSE items
                 END) + ' '
         FROM dbo.Split(ErrorLog.Details, ' ') FOR XML PATH (''))
    ,'&amp;','&')
    ,'&lt;','<')
    ,'&gt;','>')
    ,'&#x0A;',char(10))
    ,'&#x0D;',char(13))
    ,'&#x09',char(9))
 )
AS Details 
FROM ErrorLog
CREATE FUNCTION dbo.EllipseTextWords(@Text VARCHAR(MAX), @EllipsedSize INT, @Separator AS VARCHAR(1), @EllipsisLength INT = 3)
RETURNS VARCHAR(MAX)
AS
BEGIN

    DECLARE @Tokens TABLE
    (
        Token VARCHAR(MAX)
    )

    WHILE (CHARINDEX(@Separator, @Text) > 0)
    BEGIN
        INSERT INTO @Tokens
        SELECT LTRIM(RTRIM(SUBSTRING(@Text, 1, CHARINDEX(@Separator, @Text) - 1)))

        SET @Text = SUBSTRING(@Text, CHARINDEX(@Separator, @Text) + 1, LEN(@Text))
    END

    INSERT INTO @Tokens
    SELECT LTRIM(RTRIM(@Text))

    UPDATE @Tokens SET Token = LEFT(Token, @EllipsisLength) + '...' + RIGHT(Token, @EllipsisLength) WHERE Token <> '' AND LEN(Token) > LEN(LEFT(Token, @EllipsedSize))

    DECLARE @Ellipsed VARCHAR(MAX)
    SELECT @Ellipsed = COALESCE(@Ellipsed + @Separator, '') + Token FROM @Tokens 

    RETURN @Ellipsed

END
SELECT dbo.EllipseTextWords(Details, 20, ' ', DEFAULT) FROM ErrorLog