powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Удалить индекс с indid 250 для таблицы без LOB
8 сообщений из 8, страница 1 из 1
Удалить индекс с indid 250 для таблицы без LOB
    #38791918
Ыzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sybase ASE 15.7sp110
есть база с warmstandby
табличка с текстовым полем. похоже для варм-репликации был построен индекс с именем типа repl_368717335_250
таблица 200метров, текстовое поле (комментарий к сущности) перевалило за 3,5гб.
подумали-подсчитали, что хватит varchar(500) вместо текстового поля, и альтернули таблицу, изменили text -> varchar(500).

в результате индекс остался существовать,
00:0010:00000:00209:2014/10/30 14:23:09.04 server Error: 644, Severity: 21, State: 5
00:0010:00000:00209:2014/10/30 14:23:09.04 server Index row entry for data row id (1390172, 20) is missing from index page 1563098 of index id 250 of table 'tablename' in database 'dbname'. Xactid is (272489,70). Drop and re-create the index.

из-за его особого статуса просто drop index его нельзя
You cannot manually drop an index for replication. Either turn off replication on the column, or run DBCC REINDEX.
но согласно sp_setrepcol и sp_setreptable - она и так не реплицируется
The replication status for 'tablename' is currently false, owner_off, primary key = 'PK_TABLENAME'.
The table 'tablename' is not marked as replicated.
...
Рейтинг: 0 / 0
Удалить индекс с indid 250 для таблицы без LOB
    #38792181
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЫzzSybase ASE 15.7sp110
есть база с warmstandby
табличка с текстовым полем. похоже для варм-репликации был построен индекс с именем типа repl_368717335_250


Для репликации индексы не нужны. Их для репликации не строят.

Ыzzтаблица 200метров, текстовое поле (комментарий к сущности) перевалило за 3,5гб.
подумали-подсчитали, что хватит varchar(500) вместо текстового поля, и альтернули таблицу, изменили text -> varchar(500).

в результате индекс остался существовать,
00:0010:00000:00209:2014/10/30 14:23:09.04 server Error: 644, Severity: 21, State: 5
00:0010:00000:00209:2014/10/30 14:23:09.04 server Index row entry for data row id (1390172, 20) is missing from index page 1563098 of index id 250 of table 'tablename' in database 'dbname'. Xactid is (272489,70). Drop and re-create the index.

из-за его особого статуса просто drop index его нельзя
You cannot manually drop an index for replication. Either turn off replication on the column, or run DBCC REINDEX.
но согласно sp_setrepcol и sp_setreptable - она и так не реплицируется
The replication status for 'tablename' is currently false, owner_off, primary key = 'PK_TABLENAME'.
The table 'tablename' is not marked as replicated.

Так DBCC REINDEX не пробовал ?
...
Рейтинг: 0 / 0
Удалить индекс с indid 250 для таблицы без LOB
    #38819852
Ыzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivТак DBCC REINDEX не пробовал ?
попробовал. он его перестраивает но не удаляет.

Server Message: Number 3640, Severity 10
Server 'SRV_WARM', Line 1:
One or more indexes are corrupt. They will be rebuilt.

Server 'SRV_WARM', Line 1:
Non-clustered index (index id = 250) is being rebuilt.
...
Рейтинг: 0 / 0
Удалить индекс с indid 250 для таблицы без LOB
    #38820212
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЫzzSybase ASE 15.7sp110
........
подумали-подсчитали, что хватит varchar(500) вместо текстового поля, и альтернули таблицу, изменили text -> varchar(500).

Зря изменили. Я на вашем месте посмотрел бы в сторону InRow для LOB,
Как раз ваш случай - если размер поля будет меньше указанных 500 - данные уйдут "InRow" - если больше- будет аллоцирована отдельная страница.

Ыzzтекстовое поле (комментарий к сущности) перевалило за 3,5гб.

В моем случае реально текстовый индекс (и таблица соотв). сжимались в разы, т.к. изначально спроектирован был тип text и даже под минимальное значение - выделялась 1 страница. 90% значений укладывались в отведенную для InRow размерность.
...
Рейтинг: 0 / 0
Удалить индекс с indid 250 для таблицы без LOB
    #38820214
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.: при этом рост сегмента данных не был сколь-нибудь критичным - обусловлено довольно большим размером строки: 1 строка >> 0,5 страницы
...
Рейтинг: 0 / 0
Удалить индекс с indid 250 для таблицы без LOB
    #38821174
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыzz,

индекс построили для увеличения скорости репликации,насколько я понимаю.
Его использование "включается" процедурой sp_setreptable .

Example 7

Removes the replication status of table t1, and drops the replication indexes if t1 was initially marked for replication to use indexes:

sp_setreptable t1, 'false'
...
Рейтинг: 0 / 0
Удалить индекс с indid 250 для таблицы без LOB
    #38821366
Ыzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLMantis,

там warmstanby, оно не управляется sp_setreptable
The replication status for 't1' is already set to false. Replication status for 't1' does not change.
...
Рейтинг: 0 / 0
Удалить индекс с indid 250 для таблицы без LOB
    #38821488
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыzz,

sp_reptostandby? нет?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Удалить индекс с indid 250 для таблицы без LOB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]