Таблицы SQL Server 2000

Это не может быть то, что трудно - но я думаю, что являюсь довольно хромым. Совет?

Я очень не хочу предложить что-то не-Cisco, но Вы выполняете более старый конец life'd маршрутизаторов Cisco - таким образом, я буду. Когда мой ЯЩИК ДЛЯ ПРОБНОЙ МОНЕТЫ 506e зажженный, я заменил его tinsy системой от выполнения LogicSupply Vyatta и был только впечатлен.

Я просто послал производство машина VMware, выполняющая 6 статических IP, 3 внутренних сети (10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24), вся сетка из одного IP, и все 6 внешних IP случайным образом перенаправление портов внутрь без уважения к любому к отображениям.

Если бы у Вас была запасная машина, то Вы могли бы заменить 2600 или купить что-то твердое тело у LogicSupply - Вы будете чрезвычайно впечатлены Vyatta.. и хочу выстрелить себе в ногу для использования 2600 для чего-либо кроме дверной пружины.

пароль 7 0519091A3549430C

Это само собой разумеется - но Вы отправили свой частный IP, маршрутизатор, конфигурация маршрутизатора, и хешировали пароль онлайн. Ваша попытка изменить то право пароля?

1
задан 29 April 2010 в 19:38
6 ответов

Несколько мыслей здесь:

1) Не делайте этого. Серьезно. Миллионы таблиц были бы кошмаром и вероятно вызовут намного больше проблем, чем он решает.

2) Если Вы действительно хотите разбить таблицу в несколько таблиц, Вы не должны использовать это многие. В зависимости от Ваших аппаратных средств я ожидал бы, что 50 миллионов строк не будут никакой проблемой, таким образом, Вы могли разделить свои данные на 4 таблицы.

3) Что я сделал бы, если вообще возможный, должен будет обновить до SQL Server 2005 или 2008 и разделение таблицы использования. Это позволило бы Вам подразделять свои данные в таблице. Не идеальное решение, но намного лучше, чем миллионы таблиц.

Для ответа на конкретные вопросы я сказал бы, что маловероятно, что SQL Server мог обработать это много таблиц в одном экземпляре и если бы это может, имея одну таблицу на запись, сделал бы Query Analyzer, и т.д. вполне прилично бесполезный.

Быстрое дополнение: от сайта Microsoft:

Объекты базы данных включают все таблицы, представления, хранимые процедуры, расширенные хранимые процедуры, триггеры, правила, значения по умолчанию и ограничения. Сумма количества всех этих объектов в базе данных не может превысить 2,147,483,647.

http://msdn.microsoft.com/en-us/library/aa933149 (SQL.80) .aspx

Довольно удивительный, что число является ТОЧНО тем, которое Вы указали... Хм...

5
ответ дан 3 December 2019 в 16:16
  • 1
    Спасибо за указание, что 2,147,483,647 общее количество объектов в сервере. У меня создалось впечатление, что это - максимальное количество таблиц. –  user40766 28 April 2010 в 21:15

Ведение индексов должно быть сделано на основе существующей фрагментации, не вслепую. С кластеризованным столбцом IDENTITY у Вас не должно быть многого для волнения о. Сценарий дефрагментации Дурака SQL поможет.

200 миллионов строк не так очень и еще не стоящие разделения, по моему скромному мнению, из-за запроса наверху, много имен таблиц, требующих динамического SQL и т.д. Если у Вас нет крошечного окна обслуживания, возможно

У нас есть приблизительно 6 миллионов строк во ВСТАВЛЕННЫЙ день, FWIW в одну таблицу.

Боль хуже, чем усиление на основе информации, которую Вы дали.

4
ответ дан 3 December 2019 в 16:16

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

Ответ просто лучше индексирует, специально предназначенный вокруг запросов, которые Вы используете. Так как Вы не детализировали те запросы, я не могу дать Вам определенные рекомендации.

В целом, тем не менее, мы поддерживаем много баз данных с таблицами, столь же большими как это, и да это может быть боль, но его определенно возможное.

Если Вы действительно решаете там реализовать разделы, используйте другой способ разделить данные (возможно, текущие данные по сравнению со старыми данными), и обоснованно небольшое количество разделов. Следует иметь в виду, что, если Вы делаете это "вручную" (вместо того, чтобы использовать SQL 2005 + разделение функции) затем, все запросы против этих разделенных таблиц должны будут, вероятно, быть перепроектированы.

Править: В определенном ответе на одну часть Вашего вопроса да Руководитель предприятия / Query Analyzer может начать делать очень плохие вещи, когда у Вас есть крупные числа таблиц. У нас был плохо разработанный dbs с тысячами таблиц, и Вы не можете даже развернуть папку "Tables" в структурном виде, не ожидая ДОЛГОЕ ВРЕМЯ его для перечисления их всех.

2
ответ дан 3 December 2019 в 16:16

Один на пользователя немного походит на излишество и грубо на Вашей кодовой базе. Необходимо было бы более или менее использовать динамический SQL в любом, сохранил proc, который использует те таблицы, который определенно усложняет жизнь и будущую разработку и тестирование. (Я говорю на основе опыта - мы раньше имели некоторые очень сложные таблицы, которые мы ежедневно генерировали; всеми взаимодействиями с теми таблицами был динамический SQL.)

Не зная требований приложений с помощью этих данных, действительно ли Вы могли стареть старые данные в архивную таблицу или таблицу истории / таблицы?

Для SQL 2k5/2k8 Вы могли использовать разделенные таблицы, которые могли бы помочь также и абстрагировать несколько вещей таблиц от Ваших запросов и приложений. Существуют некоторые глюки с разделенными таблицами, но они могли бы работать на Вас здесь.

С этим видом объема Вы оказываетесь перед необходимостью делать некоторую определенную разработку прототипа и сравнительное тестирование, так как нет никакого единого ответа.

0
ответ дан 3 December 2019 в 16:16
  • 1
    Большое спасибо за Вас комментирует. Я знаю, что всеми запросами должен будет быть динамический SQL, так как на имена таблиц должны были бы сослаться динамично. Так как proc относительно просты, это, кажется, не главное беспокойство. Также эти 2 миллиарда, ни действительно ожидаются быть пораженными, так как неактивные пользователи периодически очищаются от системы. То, в чем я обеспокоен, переходит к сути дела, где я не могу даже открыть базу данных в Query Analyzer из-за чистого количества таблиц. –  user40766 28 April 2010 в 20:50
  • 2
    Посмотрите редактирование на моем ответе. Да, Руководитель предприятия и Query Analyzer действительно могут начать иметь проблемы, когда Вы просите, чтобы они перечислили даже тысячи таблиц. –  BradC 28 April 2010 в 21:20

Я пересмотрел бы дизайн.

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

С другой стороны, и даже если не кластеризация, у Вас должен быть уникальный индекс на memberid и уникальной части остальных столбцов, так как это кажется, что у Вас есть несколько строк на участника. Индекс на только memberid вряд ли будет, конечно, покрывать.

0
ответ дан 3 December 2019 в 16:16

Кажется, что Разделение Таблицы является способом пойти. Вам будет нужен, по крайней мере, SQL Server 2005 как бы то ни было.

Вот хорошая статья о предмете для получения Вас, запустил Kimberly Tripp Статья MSDN

0
ответ дан 3 December 2019 в 16:16

Теги

Похожие вопросы