Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 View с индексами или репликация  [new]
TurboKaban
Member

Откуда:
Сообщений: 25
Добрый день,

Столкнулся с такой проблемой. Есть сторонная БД с таблицами, в которых нет ни ключей ни индексов, создавать или менять в этой БД мне ничего нельзя, данные(но не структура) в таблицах периодически обновляются третьими лицами путем пересоздания самих таблиц.
Моя задача заключается в построении в своей БД разных view для отчетности, опирающихся на таблицы сторонней базы. Поскольку запросы во view сложные и данных много, то все работает жутко медленно.

Собственно вопрос, есть ли какой-то способ получить в своей базе данных копию структуры сторонней БД, но с индексами? И эта структура должна обновляться одновременно с исходной структурой.

Версия SQL 2008
24 окт 18, 13:35    [21713472]     Ответить | Цитировать Сообщить модератору
 Re: View с индексами или репликация  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
TurboKaban,

затаскиваете все к себе. у себя создаете индексы.
но проблема в том что раз "в которых нет ни ключей" то каждый раз придется затаскивать ВСЕ заново
24 окт 18, 14:14    [21713561]     Ответить | Цитировать Сообщить модератору
 Re: View с индексами или репликация  [new]
TurboKaban
Member

Откуда:
Сообщений: 25
Видимо я забыл написать, что затаскиваться ко мне все должно автоматически:)
24 окт 18, 14:21    [21713581]     Ответить | Цитировать Сообщить модератору
 Re: View с индексами или репликация  [new]
TurboKaban
Member

Откуда:
Сообщений: 25
А нельзя ли сделать так: к таблице в чужой БД создать вьюху в своей БД. А потом на вьюху в своей добавить триггер instead of insert, который будет заполнять двойника чужой таблице в моей базе, но моя таблица уже будет с индексами.
24 окт 18, 15:02    [21713683]     Ответить | Цитировать Сообщить модератору
 Re: View с индексами или репликация  [new]
PizzaPizza
Member

Откуда:
Сообщений: 370
TurboKaban
к таблице в чужой БД создать вьюху в своей БД. А потом на вьюху в своей добавить триггер instead of insert


триггер то у вас будет на вашу вьюху, а вставка будет в другие таблицы, так что он не сработает
24 окт 18, 18:12    [21714084]     Ответить | Цитировать Сообщить модератору
 Re: View с индексами или репликация  [new]
Владимир Затуливетер
Member

Откуда:
Сообщений: 427
Еще вариант

  • Делаете бекап их базы
  • Восстанавливается на своем сервере (или может быть на том же)
  • Накатываете скрипт который создает индексы и все что вам нужно
  • Это все можно в одном .sql файле сделать.

    Автоматизировать вроде бы не должно быть сложно, задача в sql agent, запускаете ее один раз в сутки.

    Но все конечно зависит от того, насколько свежие вам данные нужны, если оперативные, то такой вариант конечно не подходит.
  • 24 окт 18, 19:23    [21714192]     Ответить | Цитировать Сообщить модератору
     Re: View с индексами или репликация  [new]
    Mind
    Member

    Откуда: Лучший город на Земле
    Сообщений: 2322
    Владимир Затуливетер
    Но все конечно зависит от того, насколько свежие вам данные нужны, если оперативные, то такой вариант конечно не подходит.
    А если свежие, данных много и учитывая "путем пересоздания самих таблиц", то других вариантов вообще нету.
    25 окт 18, 02:19    [21714407]     Ответить | Цитировать Сообщить модератору
     Re: View с индексами или репликация  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 31355
    Mind
    Владимир Затуливетер
    Но все конечно зависит от того, насколько свежие вам данные нужны, если оперативные, то такой вариант конечно не подходит.
    А если свежие, данных много и учитывая "путем пересоздания самих таблиц", то других вариантов вообще нету.
    Ещё можно делать то же самое, но на той стороне.
    Периодически создавать копию базы, индексировать, а отчётные вьюхи на своей стороне будут смотреть на эту ккопию.
    Тем самым хотя бы исключить передачу базы по сети (имеет смысл, если база далеко, и доступ небыстрый)
    25 окт 18, 08:36    [21714464]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить