Я читал, что при изменении уровня совместимости не возникает никаких проблем с производительностью, кроме улучшения
blockquote>Где вы это прочитали? Конечно, может быть снижение производительности, как в
2014
было введено новоеcardinality estimator
. Таким образом, некоторые из вашихquery plans
могут измениться с оптимального на субоптимальный. Вот почемуcompatibility level 100
все еще поддерживается, устанавливая его, вы говорите своему серверу использоватьold cardinality estimator
для всех ваших запросов к базе данных.В случае, если только несколько запросов стали медленнее, вы можете оставить
compatibility level 120
и использовать9481
query trace flag
для этих запросов, как описано здесь: Включить поведение оптимизатора запросов SQL Server, влияющее на план, которое может быть управляется различными флагами трассировки на уровне конкретного запроса
__ поле VIEWSTATE также используется для хранения состояния управления, которое не является дополнительным. Кроме того, информация, содержавшаяся в состоянии отображения, используется для проверки обратной передачи, если я не ошибаюсь (и проверка включена, который является значением по умолчанию). Таким образом, пока у Вас есть форма с runat = "сервер", у Вас будет поле состояния отображения. Однако необходимо заметить намного меньший размер поля при отключении всего состояния отображения.
Совет: В Asp.net, если вам нужно полностью удалить __VIEWSTATE, переопределите метод Page.Render, отобразите страницу в строку и удалите из нее текст __VIEWSTATE.