Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Update новой колонки 2.5 млрд строк

$
0
0
Коллеги,

поставили задачу оптимизировать таблицу хранения логов в которой 2.5 млрд строк.
Первый этап - изменить поля Method на MethodID и ServerName на ServerID - оба поля tinyint, структура исходной талицы:

CREATE TABLE [dbo].[log_HttpRequest](
	[id] [bigint] NOT NULL,
	[Method] [varchar](16) NOT NULL,
	[RefererId] [bigint] NULL,
	[UriID] [bigint] NOT NULL,
	[UserAgentId] [bigint] NOT NULL,
	[UserID] [bigint] NULL,
	[SessionID] [bigint] NULL,
	[AspSessionID] [varchar](32) NULL,
	[TimeStamp] [datetime] NOT NULL,
	[ProcessTime] [int] NOT NULL,
	[ServerName] [varchar](32) NULL,
	[RequestTraceGUID] [uniqueidentifier] NULL,
	[ClientIP] [varbinary](16) NULL,
	[NSClientIP] [varbinary](16) NULL,
	[RawUriID] [bigint] NULL,
	[ActualUriId] [bigint] NULL,
	[RequestParameters] [varchar](1024) NULL,
	[SecurityTagId] [bigint] NULL,
	[ServerID] [tinyint] NULL,
	[MethodID] [tinyint] NULL,
 CONSTRAINT [PK_log_HttpRequest] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = ON, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


Есть таблица: tb_Framework_Servers(ServerID tinyint, Servername varchar(32)) подготовленная заранее - содержит 68 записей

Сначала делаю ALTER TABLE ADD ServerID tinyint

затем запустил:

update log_HttpRequest
Set log_HttpRequest.ServerID = tb_Framework_Servers.ServerID
from tb_Framework_Servers
where log_HttpRequest.ServerName = tb_Framework_Servers.ServerName

Выполняется уже более 5 часов ((

Есть мысли как сделать быстрее?

Viewing all articles
Browse latest Browse all 7251

Trending Articles