Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.23;
Скачать: CL | DM;

Вниз

Быстрая вставка записей   Найти похожие ветки 

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

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


 
Reindeer Moss Eater ©   (2003-11-28 14:22) [1]

А где находится информация предназначенная для быстрой вставки?


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

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


 
Reindeer Moss Eater ©   (2003-11-28 14:25) [3]

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


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

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


 
ZrenBy ©   (2003-11-28 14:55) [5]

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

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


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

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


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

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

Утилита BULK INSERT.

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


 
}|{yk ©   (2003-11-28 19:28) [8]

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


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

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


 
Reindeer Moss Eater ©   (2003-11-28 19:35) [10]

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


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


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

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


 
Reindeer Moss Eater ©   (2003-11-28 20:03) [12]

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

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


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

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


 
Reindeer Moss Eater ©   (2003-11-28 20:27) [14]

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


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

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


 
Reindeer Moss Eater ©   (2003-11-28 20:33) [16]

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

SELECT INTO
BULK COPY

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


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

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


 
Reindeer Moss Eater ©   (2003-11-28 20:42) [18]

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

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


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

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


 
Zacho ©   (2003-11-28 22:01) [20]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2003.12.23;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
1-75267
Yu
2003-12-10 10:35
2003.12.23
Переполнение буфера?


1-75193
Rimak
2003-12-10 22:05
2003.12.23
Помогите с RichEdit


3-75099
Alessio2003
2003-11-29 19:08
2003.12.23
Как сохранять рисунки в Paradox?


1-75154
Alex-chainik
2003-12-10 14:41
2003.12.23
Две формы


1-75184
Mishenka
2003-12-11 16:08
2003.12.23
Можно ли OpenDialog использовать только для одного каталога?