2010-09-15 6 views
1

У меня есть сервер базы данных, который в настоящее время имеет две базы данных, назовите их [A] и [B].Связанные таблицы - SQL Server 2008 - SQL Server 2005

[A] - стандартная база данных, используемая для моего приложения. [B] используется другим приложением (которое накладывает значительную нагрузку на сервер), однако мы используем несколько таблиц экономно (которые совместно используются моим приложением и основное приложение, использующее [B]). В последнее время использование [B] возрастает, и это вызывает длительные периоды ожидания и тайм-ауты в моем приложении.

Я открыт для альтернативных идей, но на данный момент самое быстрое потенциальное решение, с которым я столкнулся, - это получить второй сервер базы данных и переместить [A] на это. Тем не менее, мне действительно нужен доступ к некоторым таблицам в [B] - в идеале с минимальным количеством изменений кода.

Мы думали, установочный что-то вроде:

ток: DB Сервер 1 {[A], [B]} (SQL Server 2005)

Настройка новой DB Сервер 1 {[B] } (SQL Server 2005) DB Server 2 {[A], [B]} (SQL Server 2008)

Где в новой настройке DBServer2. [B] является связанной таблицей (видом) с DBServer1. [B]

Я просмотрел связанные базы данных, fr О, мое понимание (ограниченное) работает как псевдоним базы данных на другом сервере, что почти то, что мы хотим, за исключением того, что добавляет дополнительный серверный определитель и работает на уровне db. Я бы хотел сделать что-то подобное, но в идеале без квалификатора сервера и на уровне таблицы.

Так, например, [B] имеет таблицы пользователей и событий. Таблица Users обновляется еженедельно с помощью пакетной обработки, и мы часто ее используем, поэтому мы хотим иметь локальную копию на новом DBServer2. Однако события, которые мы используем гораздо реже и должны находиться в режиме реального времени между двумя серверами. В этом случае было бы здорово иметь события как связанную таблицу.

Кроме того, было бы замечательно, если бы мы могли использовать ту же разметку для запросов. Сегодня, чтобы запросить один децибел от другого мы сделать что-то вроде

выберите * из b.events присоединиться a.dates

Мы хотели бы продолжить, что, за исключением того, есть сервер базы данных знают, что, когда мы прикасаемся события, которые он действительно находится на dbserver1.b.events.

Это имеет смысл? Иногда я путаю себя.

Спасибо за любую помощь ~ P

ответ

0

Вы можете использовать синонимы для связанных объектов - http://msdn.microsoft.com/en-us/library/ms177544%28SQL.90%29.aspx

Это работает, к сожалению, только для отдельных объектов, вы не можете сделать синоним linkedserver.databasename, а затем ссылаться на synDBName.table.

+0

Мне нравится этот потенциал - сегодня я проверю его и, надеюсь, вернусь и дам вам несколько моментов. Спасибо за рытье немного глубже. – Prescott

0

«Альтернатива» Идея от меня, так как вы сказали, что вы открыты ...

Как насчет глядя в причину медлительности? Что такое «Нагрузка», которую вы измеряете? Как ваши диски выложены на сервере?

Возможно, вы могли бы использовать больше памяти, другой процессор или некоторую настройку SQL?

Устранение проблем с помощью программного обеспечения или аппаратного обеспечения МОЖЕТ быть быстрее, чем получать сервер и выполнять все установки, а затем работать с проблемами интеграции, с которыми вы можете столкнуться.

+0

Я измеряю нагрузку «мои простые запросы к базе данных занимают 30 секунд для выполнения» и «мое приложение отключено». Запросы другого приложения работают очень долго (измеряется в часах) и работают сотнями миллионов записей. Их запросы, требующие дополнительных минут, не проблема. Мои запросы, занимающие 30 секунд, далеки. – Prescott

+0

Кроме того, что касается памяти и процессора - они помогли бы на некоторое время, но это довольно ограничено по мере увеличения рабочей нагрузки, их запросы занимают больше времени, но не заметно для них. Не говоря уже о sql 2005 (я не могу позволить им обновить их материалы), нет приоритетов, поэтому, если их запросы запущены, мои голодают, несмотря на то, насколько они бывают короткими и быстрыми. (Может быть, что-то я могу сделать по этому поводу в 2005 году?) – Prescott

+0

Я ценю ваши показатели нагрузки, но вы должны хотя бы взломать открытую перфомансу и заглянуть в нее. Похоже, они управляют какой-то системой отчетности на этом дБ, да? Как вы узнаете, поможет ли память и процессор некоторое время? – Sam

Смежные вопросы