Наверняка тема вам уже знакома в той или иной мере. Согласитесь, так бывает, что запуская запрос мы ожидаем чего-то определённого, а получаем нечто иное. Меняем опцию чтобы запрос выполнялся быстрее, а он начинает тормозить. Ожидаем что запрос выполнится (в принципе), а он висит вечно, или даже не начинает выполняться. Ожидаем что запрос будет искать данные по индексу, а он сваливается в Full Scan. В этом докладе мы рассмотрим ряд таких непонятных, на первый взгляд, ситуаций и заглянем под капот SQL Server чтобы разобраться как это работает и почему ожидания не совпадают с реальностью.