2009-10-04 3 views
0

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

Я думал, что индекс был чем-то внутренним для базы данных, который не влияет на приложение. Как вы пишете sql, который не работает в присутствии кластеризованного индекса?

Приложение использует SQL Server 2005

+0

Не видя кода, на это довольно сложно ответить. Если нет указательных подсказок, запросы не должны заботиться (для результатов), какие индексы есть – GilaMonster

ответ

1

ли это кластерный индекс или первичный ключ, который вы сделали композит? Они иногда рассматриваются как сингулярные в SQL Server, хотя один является отношением к домену (первичный ключ), а другой (кластерный индекс) является деталью реализации.

Некоторые ORM не работают с составными первичными ключами.

Включена ли в базу данных плановый план обслуживания? Вы вручную запускали DBCC CHECKDB?

1

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

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

+0

Не нужно исследовать его. Просто интересно, если это то, что мне нужно проверить в моих собственных приложениях. Я понимаю ваш ответ, потому что нужно сделать что-то очень специальное, чтобы вызвать его. – adrianm

+0

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

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