У меня есть удаленный сервер SQL. Я хочу сделать локальную копию всех таблиц на этом сервере. Меня не волнует формат файла, используемый локально, я ищу самый быстрый способ получения данных с сервера SQL в файл. (примечание: резервное копирование на стороне сервера недоступно)
Это мой текущий подход:
Шаг 1 . Создание считывателя и считывание всех данных в Список объектов
while (reader.Read()) {
var fieldCount = reader.FieldCount;
for (int i = 0; i < fieldCount; i++) {
objects.Add(reader.GetValue(i));
}
}
Шаг 2 . Преобразовать объекты в строки
List<string> test = new List<string>();
foreach (var o in objects) {
test.Add(o.ToString());
}
Шаг 3 . Записать строку в (CSV) файл
foreach (var s in test) {
backupFile.Write("\"");
backupFile.Write(s);
backupFile.Write("\";");
}
Я измерил производительность этих 3 шагов:
- Шаг 1 занимает 3 секунды
- Шаг 2 занимает 2,8 секунды
- Шаг 3 занимает 0,8 секунды
Я ищу способ ускорить шаг 2. Есть ли более быстрый способ передачи этих объектов в файл? (не должен быть текстовым файлом. Двоичный файл локальной базы данных тоже в порядке)