Я досліджую переваги оновлення з MS SQL 2012 до 2014 року. Однією з найбільших точок продажу SQL 2014 є таблиці, оптимізовані для пам'яті, які, очевидно, роблять запити надшвидкими.
Я виявив, що в таблицях, оптимізованих пам'яті, є кілька обмежень, таких як:
- Немає
(max)
розмірів полів - Максимум ~ 1 КБ на рядок
- Немає
timestamp
полів - Немає обчислених стовпців
- Ніяких
UNIQUE
обмежень
Все це кваліфікується як неприємності, але якщо я дійсно хочу обійтись ними, щоб отримати переваги від продуктивності, я можу скласти план.
Справжній кікер - це той факт, що ви не можете запустити ALTER TABLE
операцію, і вам доведеться проходити цю ригмаролу кожен раз, коли ви додаєте поле до INCLUDE
списку індексу. Крім того, виявляється, що вам потрібно вимкнути користувачів із системи, щоб внести будь-які зміни схеми до таблиць MO в реальній БД.
Я вважаю це абсолютно обурливим, настільки, що я фактично не можу повірити, що Microsoft могла вкласти стільки капіталу для розвитку в цю функцію, і залишила це таким непрактичним у підтримці. Це призводить мене до висновку, що я, мабуть, дістав неправильний кінець палиці; Я, мабуть, неправильно зрозумів про оптимізовані пам'яті таблиці, що змусило мене повірити, що підтримувати їх набагато складніше, ніж є насправді.
Отже, що я неправильно зрозумів? Ви використовували таблиці MO? Чи є якийсь секретний перемикач чи процес, який робить їх практичним у використанні та обслуговуванні?