Я вставляю около 400 строк в таблицу за раз (SQL Server 2008). Я попробовал UNION ALL, но это значительно замедлило работу. Я остановился на следующем запросе:
INSERT INTO table VALUES (a, b,...),(c, d,...),...(x,y,...);
Когда я делаю этот запрос через ODBC, это занимает примерно 400 мс (я использую C++ и синхронизирую один вызов sqlExecDirect с odbc32.dll). Однако, когда я запускаю запрос в MS SQL Server Management Studio, обернутый Getdate():
SELECT Getdate()
INSERT INTO ...
SELECT Getdate()
это занимает ~ 10 мс. Для сравнения, на той же машине тот же запрос в MySQL занимает примерно 20 мс.
- Является ли SELECT Getdata() надежным способом определения времени транзакции?
- Почему MS SQL Server Management Studio намного быстрее?
- Что я могу сделать, чтобы улучшить производительность? Есть ли альтернативы ODBC? Прямое подключение к SQL-серверу?