У меня очень большой DataTable
-объект, который мне нужно импортировать из клиента в базу данных MS SQL-Server через ODBC.
Исходная таблица данных состоит из двух столбцов: * Первый столбецOffice Location
(довольно длинная строка) * Второй столбец - это booking value
(целое число)
. Сейчас я ищу наиболее эффективный способ вставить эти данные во внешний SQL-сервер.Моя цель состоит в том, чтобы заменить каждое местоположение офиса автоматически индексом, вместо этого используя полную строку, потому что каждое местоположение встречается ОЧЕНЬ часто в исходной таблице.
Возможно ли это с помощью триггера или через просмотр SQL-сервера?
В конце я хочу вставить данные, не касаясь их в моем скрипте, потому что это очень медленно для этих больших объемов данных и позволяет выполнить оптимизацию, выполняемую SQL Server.
Я ожидаючто если я сделаю INSERT данных, включая расположение Office, SQL Server ищет индекс для уже импортированного расположения, а затем использует только этот индекс.И если местоположение еще не существовало в таблице / представлении индекса, здесь следует создать новую запись и затем использовать новый индекс.
Здесь образец данных, которые мне нужно импортировать через ODBC в SQL-Server:
OfficeLocation | BookingValue
EU-Germany-Hamburg-Ostend1 | 12
EU-Germany-Hamburg-Ostend1 | 23
EU-Germany-Hamburg-Ostend1 | 34
EU-France-Paris-Eifeltower | 42
EU-France-Paris-Eifeltower | 53
EU-France-Paris-Eifeltower | 12
В результате на SQL-сервере мне нужно что-то вроде этих двух таблиц:
OId|BookingValue OfficeLocation |Oid
1|12 EU-Germany-Hamburg-Ostend1 | 1
1|23 EU-France-Paris-Eifeltower | 2
1|43
2|42
2|53
2|12
Моя первоначальная идея заключалась в том, чтобы записать данные ввременная таблица и что-то вроде интеллектуального TRIGGER (или VIEW?) для реагирования на любую вставку в эту таблицу для создания 2 желаемых (оптимизированных) таблиц.
Любая подсказка приветствуется!