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 (''))
,'&','&')
,'<','<')
,'>','>')
,'
',char(10))
,'
',char(13))
,'	',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