Переиндексация большой таблицы - насколько завинченный я?

Вы не можете распространять свое приложение третьему лицу без платной учетной записи Apple. Потому что вам нужно добавить UDID устройства третьего лица в вашу учетную запись Apple и сгенерировать новые сертификаты. Так что да, даже если вы сгенерируете ipa своего приложения и распространите его через Diawi, другой человек не сможет установить его, поэтому нет способа достичь того, чего вы хотите. Вы можете посетить здесь , чтобы увидеть более подробную информацию о различных программах членства и предоставляемых ими функциях.

5
задан marc_s 31 July 2009 в 16:37
поделиться

8 ответов

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

3
ответ дан 18 December 2019 в 07:32
поделиться

С одной стороны, я ПОСТАРАЛСЯ бы НЕ делать кластерный индекс шире, чем это абсолютно должно быть. Превращение его в пять частей кажется, намеревается продуктивное мятежником. ВСЕ столбцы в этом составном кластерном индексе стабильны, например, никогда не изменяются??

В противном случае я избежал бы их любой ценой. Кластерный индекс должен быть:

  • уникальный
  • стабильный
  • максимально узкий

Можно изменить некластеризованные индексы - без проблем. Но постарайтесь не делать кластерный индекс грязным! Это определенно снизит Вашу производительность!

Проверьте превосходные статьи блога Kimberly Tripp об индексации:

Marc

10
ответ дан 18 December 2019 в 07:32
поделиться

Я внес изменения, и это не заняло слишком много времени. Вот времена для каждой операции, первый раз находится, когда выполнено на сервере резервного копирования с единственным диском на 7200 об/мин и втором на основном сервере с дисками 15k в RAID.

ALTER TABLE Table DROP CONSTRAINT [PK_Table]

2:39 часов / 19 минут

CREATE CLUSTERED INDEX [IX_Clustered] ON [Table] 
(
 [a] ASC,
 [b] ASC,
 [c] ASC,
 [d] ASC,
 [e] ASC,
 [f] ASC
)WITH (PAD_INDEX  = ON, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, FILLFACTOR = 90, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = OFF) ON [PRIMARY]

15:30 часов / 2 часа

ALTER TABLE Table ADD CONSTRAINT
PK_hands PRIMARY KEY NONCLUSTERED 
(
 e,
 h
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

4 часа / 1 час

Запрос Select, чаще всего используемый теперь, занимает <10 секунд, где он часто брал за 10 - 15 минут до этого. Хорошее улучшение! Вставьте времена, кажутся немного быстрее также.

6
ответ дан 18 December 2019 в 07:32
поделиться

В то время как изменение кластерного индекса кажется, что, конечно, помогло бы здесь, почему Вы не пытаетесь добавить, что (некластеризованное) покрытие индексирует сначала?

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

2
ответ дан 18 December 2019 в 07:32
поделиться

Вы, возможно, не должны волноваться о времени простоя, поскольку может быть возможно сделать живое изменение (без любого времени простоя). Относится к Версии для предприятий SQL Server 2005 года.

0
ответ дан 18 December 2019 в 07:32
поделиться

1) Сколько времени Вы приблизительно оценили бы, который это изменение возьмет (спецификация сервера в конце сообщения). К сожалению, это - живой DB, и у меня не может быть времени простоя без некоторой идеи того, сколько времени это снизится для.

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

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

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

- Adam

0
ответ дан 18 December 2019 в 07:32
поделиться

Одна вещь, которую Вы могли сделать, если у Вас есть дисковое пространство, составляют вторую таблицу с корректной копией кластерного индекса строки к новой таблице за несколько дней через возрастающий процесс. После того как все строки, там выполняют sp_rename на обеих таблицах (это потребовало бы всего нескольких минут времени простоя. Если бы Ваши приложения ссылались на представление вместо физической таблицы, то Вам можно было бы сделать это с нулевым временем простоя к Вашим приложениям. Я надеюсь, что это помогает.

[Редактирование] необходимо будет также иметь дело с обновлением строк, у Вас должна быть метка времени или последнее обновление поле, доступное на исходной таблице так, чтобы можно было синхронизировать обновления, после того как у Вас есть все строки, скопированные.

0
ответ дан 18 December 2019 в 07:32
поделиться

Я соглашаюсь с Brian, Вы должны иметь тестовую базу данных с тем же объемом данных и выполнить индексное изменение. Но, я предполагаю, что Вы вносите это изменение, потому что Вы думаете, что оно ускорит запросы. Необходимо запустить тест сравнительных тестов (прежде чем и после индексного изменения), и удостоверьтесь, что оптимизация не становится pessimization.

0
ответ дан 18 December 2019 в 07:32
поделиться
Другие вопросы по тегам:

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