Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Оптимизация записи в таблицы  [new]
=Сергей=
Member

Откуда:
Сообщений: 336
Есть несколько таблиц, в которые сливаются (update существующих, затем insert отсутствующих) большие объёмы данных из разных источников (процессы управляются моим софтом). Как правильно определить выполняется ли уже слияние данных в той или иной таблице с целью избежания одновременной модификации из разных источников?
22 окт 16, 13:14    [19812079]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация записи в таблицы  [new]
aleks2
Guest
=Сергей=
Есть несколько таблиц, в которые сливаются ( 1) update существующих, затем insert отсутствующих) большие объёмы данных из разных источников (процессы управляются моим софтом). Как правильно определить выполняется ли уже слияние данных в той или иной таблице 2) с целью избежания одновременной модификации из разных источников?


1. Изучить, таки, merge.
2. with(tablockx).
3. Не неси чушь - учи матчасть.
22 окт 16, 13:17    [19812086]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация записи в таблицы  [new]
=Сергей=
Member

Откуда:
Сообщений: 336
aleks2
1. Изучить, таки, merge.

MSSQL2005
aleks2
2. with(tablockx).

за это спасибо
aleks2
3. Не неси чушь - учи матчасть.

ну тоже спасибо
22 окт 16, 13:21    [19812093]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация записи в таблицы  [new]
guest45
Guest
самый быстрый массированный INSERT по одной записи ( из тех, что я видел ) выглядел примерно так:

use [tempdb];
GO
IF EXISTS (select * from sys.tables WHERE name = 'TEST')
	DROP TABLE [TEST];
GO
CREATE TABLE TEST (
	ID BIGINT PRIMARY KEY IDENTITY,
	Name VARCHAR(100),
	Value INT
);
GO
DECLARE @Handler AS INTEGER;
EXECUTE SYS.SP_PREPARE
	@Handler OUTPUT,
	N'@Name AS VARCHAR(100)
	,@Value INT', --Parameters of query delimited by comma
	N'INSERT INTO TEST VALUES (@Name, @Value);'
EXECUTE SYS.SP_EXECUTE @Handler, 'Greg', 1;
EXECUTE SYS.SP_EXECUTE @Handler, 'Scott', 2;
EXECUTE SYS.SP_EXECUTE @Handler, 'Alain', 3;
EXEC SYS.SP_UNPREPARE @Handler;
GO
SELECT * FROM TEST;
GO
IF EXISTS (select * from sys.tables WHERE name = 'TEST')
	DROP TABLE [TEST];
GO
22 окт 16, 20:28    [19812549]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация записи в таблицы  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
=Сергей=,

Sp. get applock еще можете посмотреть
22 окт 16, 22:22    [19812688]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить