Я полагаю, что, если вы можете настроить базу данных так, чтобы она автоматически сжималась и исправлялась по мере необходимости, это чертовски тщательно. Вот почему не хватает литературы о лучших практиках; преобладает предположение, что это «просто работает». Поэтому любые указания, которые вы получите в этой области, будут расплывчатыми.
Вот (частичная) цитата из веб-трансляции на http://www.microsoft.com/web/library/Details.aspx?id=sql-server-2008-compact-express-depoly-manage
Обслуживание вашего SQL Server Express
Издания довольно похожи на управление
любая другая многопользовательская база данных, то есть
что у нас есть возможность пойти и
иметь дело с файловыми группами, мы можем иметь дело
с параметрами резервного копирования и восстановления
моделей а что нет. [Но] когда мы имеем дело
с компактными выпусками или службой SQL
CE, у нас не так много
опции. Действительно, единственные варианты, которые мы
есть, как мы хотим иметь дело с
термоусадку и ремонт.
Вот еще один из MSDN на
http://msdn.microsoft.com/en-us/library/ms838028.aspx#youcantakeitwithyou_sqlserverce_topic4
Обратите внимание, что они дают хорошую информацию об архитектуре базы данных, но по-прежнему не дают график обслуживания. Их совет: делайте это, когда база данных начинает работать медленно. Также обратите внимание, что этот совет относится к 2005 году, и с тех пор ситуация улучшилась; т.е. процедуры обслуживания теперь автоматизированы.
Держите свой дом (или базу данных) в порядке
Еще один важный фактор в
производительность больших баз данных в SQL
Сервер CE 2.0 - это организация
сама структура базы данных. Как твой
приложение изменяет содержимое
база данных, записи становятся более
случайным образом распределены в пределах
файловая структура базы данных. Этот фактор
особенно актуально после большого
количество вставок и удалений. к
обеспечить оптимальный доступ к базе данных,
сжать базу данных после любого
существенное изменение содержания.
В дополнение к восстановлению неиспользованных
пространство, выполняя компакт на
База данных имеет два заметных воздействия на
производительность: во-первых, он хранит все
записи таблицы в порядке их
основной ключ; во-вторых, он обновляет
статистика, используемая в запросе
процессор.
Упорядочение записей по первичному ключу
может заметно улучшить первичный ключ
доступ. Это связано с
страница-ориентированная природа SQL Server CE
(и большинство других баз данных). Скорее
чем загрузка отдельных записей из
база данных в память, SQL Server
CE загружает блоки записей, называемые
страницы. Когда записи базы данных
сгруппированы по порядку по первичному ключу,
загрузка страницы, содержащей одну запись
автоматически загружает эти записи с
аналогичные значения первичного ключа. Для большинства
приложения, это приводит к тому, что
упоминается как хороший «рейтинг попаданий»
Это означает, что когда ваше приложение
идет к доступу к последовательной базе данных
записи, есть большая вероятность
что страница, содержащая эти записи
уже в памяти и может быть
прямой доступ. Когда записи
более случайно распределены, как часто
происходит после большого количества
вставляет и удаляет, есть плохой
частота попаданий, требующая SQL Server CE для
получить больше страниц из базы данных
файл для доступа к тому же числу
записи.
Статистика обработчика запросов
влиять на то, как обработчик запросов
определяет лучший метод для
размещение записей. Решения как
использовать ли ключ или сделать
последовательное сканирование, чтобы найти конкретный
запись все под влиянием запроса
статистика процессора. Как
статистика устарела, есть
увеличилась вероятность того, что запрос
процессор может сделать меньше оптимального
решение. Выполнение компакта
обновляет эту статистику.
Я сочувствую вашему опыту работы с базами данных Access. Тем не менее, я думаю, вы обнаружите, что ваш опыт работы с SQL Server CE мало похож.