Базы данных Databases / Microsoft
Давно не смотрел на новые фичи MS SQL, а за последний месяц узнал несколько. Они далеко не ключевые, но их знание может пригодиться.
Если вы считаете, что:
… читайте дальше.
В MSSQL 2012 подлкючили .NET-овский FORMAT, который теперь доступен из коробки. Это CLR-функция с присущими им ограничениями (нельзя запустить на удалённом сервере), зато “встроенная”.
Набрёл на неё, когда надо было по-быстрому вывести дату в формате “yyyy-MM” и подумалось — “неужели до сих пор всё также неудобно это делать?”. Оказалось, теперь можно писать так:
Если почитать документацию, то можно узнать интересный факт: под обязательные (NOT NULL) поля VARCHAR(MAX) резервируется 24 байта. Это, конечно, не много. Но и не мало. Так что имейте в виду.
Что касается особенностей хранения строк, об этом можно прочитать много интересного в статье из следующего раздела.
Теперь ограничение на то, чтобы запись умещалась на странице не такое жёсткое, когда речь идёт о строках. Если вкратце, начиная с SQL Server 2012 можно сделать несколько строковых столбцов (не MAX) суммарной длиной больше 8060 байт и забить их символами под завязку.
При этом некоторые строки будут храниться отдельно (целиком — либо вся строка на странице, либо вся строка вне страницы). Естественно, такая возможность не означает, что её нужно нещадно эксплуатировать — работать будет, всё-таки, медленнее.
А если хочется подробностей, прочитайте статью Microsoft SQL Server 2012 Internals: Special Storage.
Базы данных Databases / Microsoft