Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Быстрая вставка записей [D7, MSSQL]


Страницы:   1 2

Yan ©   (2003-11-28 14:18:00) 

Как быстрее всего вставить большое количество записей в таблицу (разумеется ипользуя Delphi)


ksan   (2003-11-28 22:07:00) [1]

Удалено модератором


Zacho   (2003-11-28 22:01:00) [2]

Удалено модератором


ksan   (2003-11-28 20:43:00) [3]

Удалено модератором


Reindeer Moss Eater   (2003-11-28 20:42:00) [4]

Ладно, открою еще один страшный секрет:

Протоколирование операций в журнале транзакций занимает некоторое время, которое увеличивает время этой самой вставки.


ksan   (2003-11-28 20:38:00) [5]

Для MSSQL много секретов наверное. Я с ним не работал. Извини. Но все равно, а при чем здесь журнал?


Reindeer Moss Eater   (2003-11-28 20:33:00) [6]

Не много ли секретов для одной ветки и для одного MSSQL сервера?

SELECT INTO
BULK COPY

Это только то, что касается вставки данных.
Ни одна из этих операций не протоколируется в журнале транзакций.


ksan   (2003-11-28 20:31:00) [7]

Поделись секрктом - а что НЕ в транзакциях? Если клиент-сервер?


Reindeer Moss Eater   (2003-11-28 20:27:00) [8]

Неправильно понимаешь.
Не все в транзакциях.


ksan   (2003-11-28 20:25:00) [9]

Как я понимаю: ВСЕ обрабатывается в транзакциях. А выигрыш во времени протокола на сервере значителен ли?


Reindeer Moss Eater   (2003-11-28 20:03:00) [10]

Это не секрет.
Иначе бы в документации по поводу этого ничего бы не было написано.

DML операции могут протоколироваться (обрабатываться в транзакциях) а могут и не протоколироваться в журнале тразакций.
Во втором случае вставка записей занимает меньше времени.


ksan   (2003-11-28 19:57:00) [11]


> Reindeer Moss Eater © (28.11.03 19:35) [10]

Если не секрет, а как это можно контролировать?


Reindeer Moss Eater   (2003-11-28 19:35:00) [12]

Временем вставки разумеется


ksan   (2003-11-28 19:35:00) [13]

Действительно, а чем "БЫСТРО" отличается от других вставок?


}|{yk   (2003-11-28 19:28:00) [14]

Не знаю, наиболее бысро ли это, но можно сделать client dataset совать данные в него, а потом делать commitupdate(-1)


Reindeer Moss Eater   (2003-11-28 15:00:00) [15]

...который был загружен из файла

Утилита BULK INSERT.

Быстрее не будет. Если режим у сервера позволяет непротоколируемые операции вставки


Карелин Артем   (2003-11-28 14:56:00) [16]

1) Делаем DisableControls для открытого датасета.
2) До начала вставки стартуем транзакцию, по окончании подтверждаем. Хотя это зависит от компонентов...


ZrenBy   (2003-11-28 14:55:00) [17]

Один из способов

Сформировать XML
Передать XML и
insert into table select ... from openxml( )


Yan   (2003-11-28 14:50:00) [18]

Reindeer Moss Eater В некотором открітом наборе данных например в клиент датасете, который был загружен из файла


Reindeer Moss Eater   (2003-11-28 14:25:00) [19]

не надо торопиться


b0bi   (2003-11-28 14:24:00) [20]

SELECT <fields> INTO <DestinationTable> FROM <SourceTable> WHERE <condition> (при этом DestinationTable создаётся и в неё добавляются записи)
или так
INSERT INTO <DestinationTable>(<fields>) (<sub_query>)
(DestinationTable должна существовать, выход sub_query должен совпадать с полями DestinationTable)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо