Я только что прочитал это сообщение в блоге и, вкратце, он говорит, что если SQL-сервер не выполняет достаточно хороших планов построения запросов, то последнее, что вы хотите сделать, это начать с самого начала кодирование вещей. Итак, это заставило меня задуматься; Как вы могли бы "жестко кодировать" вещи без жесткого кода. (Да, я так думаю.)
является следующим; 1) возможно, 2) хорошая идея и 3) есть ли инструменты, которые помогут администраторам баз данных сделать это?
У вас медленный запрос, и по какой-то причине вам не нравится план запроса, который выбирает ваша СУБД. Таким образом, вы начинаете играть с ним (на сервере разработки), заставляя разные вещи, пока не получите план, который лучше. Затем вы пытаетесь декомпозировать процесс принятия решений в СУБД, чтобы выяснить, почему она не выбрала эту, а затем перепроектировать то, что потребуется, чтобы заставить ее выбрать лучшую.
Редактировать: Первые ответы, кажется, отвечают на несколько иной вопрос, чем я пытался задать.
Ситуация: у вас есть запрос, который недостаточно быстр, но вы думаете, что можете сделать его быстрее (на данный момент) путем жесткого кодирования частей плана запроса. Однако вы не хотите делать это в prod по любой причине.
(Предлагаемое) решение: Создание и тестирование жестко закодированных планов запросов. Когда вы найдете достаточно быстрое приложение, попробуйте и откажитесь от того, на что смотрит СУБД (статистика и т. Д.), Когда она решит не использовать лучший план. Когда у вас есть это, используйте это как руководство для того, что настраивать.
Вопрос: Является ли описанный выше практический способ выполнения задачи? Достаточно ли их ручек, чтобы включить его? Есть ли у них какие-либо инструменты, которые показывают, что данные использовались для принятия решений по плану запроса?