각 요청을 웹 사이트의 웹 처리기에 기록하는 "기록"테이블이 있습니다. 이 문에 1050 행에 대한SQL Server 2005의 로깅 테이블 성능 향상
/****** Object: Table [dbo].[HistoryRequest] Script Date: 10/09/2009 17:18:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[HistoryRequest](
[HistoryRequestID] [uniqueidentifier] NOT NULL,
[CampaignID] [int] NOT NULL,
[UrlReferrer] [nvarchar](512) NOT NULL,
[UserAgent] [nvarchar](512) NOT NULL,
[UserHostAddress] [nvarchar](15) NOT NULL,
[UserHostName] [nvarchar](512) NOT NULL,
[HttpBrowserCapabilities] [xml] NOT NULL,
[Created] [datetime] NOT NULL,
[CreatedBy] [nvarchar](100) NOT NULL,
[Updated] [datetime] NULL,
[UpdatedBy] [nvarchar](100) NULL,
CONSTRAINT [PK_HistoryRequest] PRIMARY KEY CLUSTERED
(
[HistoryRequestID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[HistoryRequest] WITH CHECK ADD CONSTRAINT [FK_HistoryRequest_Campaign] FOREIGN KEY([CampaignID])
REFERENCES [dbo].[Campaign] ([CampaignId])
GO
ALTER TABLE [dbo].[HistoryRequest] CHECK CONSTRAINT [FK_HistoryRequest_Campaign]
GO
37초 :
SELECT *
FROM HistoryRequest AS hr
WHERE Created > '10/9/2009'
ORDER BY Created DESC
사람이를 가속화하기위한 anysuggestions이 있습니까 여기에 테이블 정의는? CREATED 열에 PK 인덱스와 일반 인덱스가있는 클러스터 된 인덱스가 있습니다. 나는 유일한 색인을 시도했다. 그리고 그것은 어딘가에 중복 된 엔트리가 있다고 불평했다 - 예상 할 수있다.
어떤 통찰력도 환영합니다!
나는 이것을 가지고 놀 것이다. 감사! –
XML 열을 꺼내 새로 만든 테이블 (HistoryRequestExtended)에 놓았습니다. 이 한 가지 조치로 인해 내 성명서가 해제되었으며 다시 신속하게 비명을 지르고 있습니다. (SELECT *를 사용하는 것만 큼 "틀린"것조차도). 감사! :) –
안녕하세요. 문제가 없습니다. 이런 식으로 SQL 2005 데이터베이스의 상점에서 XML 데이터 형식을 사용하지 않는 이유가 있습니다. 대신 우리는 ntext에 데이터를 저장하고 모든 XML 항목을 코드로 처리하는 경향이 있습니다. SQL 2008에서이 기능이 개선되었는지 몇 달 후 알 계획입니다. –