Переход с использования SQL Server Express на SQL Server Compact - PullRequest
6 голосов
/ 18 мая 2011

До сих пор я использовал SQL Server Express в своем настольном приложении, хотя обычно сервер используется только этим единственным приложением, одним пользователем, на одной и той же машине. Это всегда казалось мне немного глупым, поскольку полноценный сервер довольно тяжелый.

Потом я узнал, что есть что-то под названием SQL Server Compact. Дело в том, что мое приложение уже довольно большое. Поэтому мой вопрос заключается в том, что если я хочу перейти на SQL Server Compact, о каких изменениях в моем коде идет речь (с использованием C #)?

В основном мне интересно, могу ли я получить доступ к Compact-версии таким же образом, как я могу получить доступ к Express-версии, которая использует ADO.NET и указывает на localhost \ sqlexpress. Так можно ли будет создать другой экземпляр с помощью Compact и просто указать на это мое приложение, или оно используется совершенно по-другому?

Ответы [ 4 ]

10 голосов
/ 18 мая 2011

Для автономного настольного продукта это, безусловно, более легкий вариант, чем SQL Express.

Однако между этими двумя понятиями есть различия, отличные от строк соединения. Например, SQL CE не поддерживает хранимые процедуры, пользовательские функции или триггеры. Кроме того, он не поддерживает весь спектр типов данных, которые поддерживает Express. На техническом уровне он также работает с вашим приложением.

Другое соображение заключается в том, что хотя SSMS будет работать с базами данных SQL CE, она не так полнофункциональна, как с SQL Express. Однако есть целый ряд хороших инструментов для заполнения этих пробелов. Загляните в блог Эрика Дженсена за хорошим обзором.

Все, что SQL Server Compact

Также ознакомьтесь с его инструментом для миграции баз данных SQL Express на SQL Compact:

Как выполнить миграцию / сокращение базы данных SQL Server до SQL Server Compact 4.0 (и 3.5)

Наконец, взгляните на этот SO вопрос, чтобы узнать больше о двух продуктах:

Каковы ограничения для SQL Server Compact? (Или - как выбрать базу данных для использования на платформах MS?)

1 голос
/ 04 июня 2011

Я бы проголосовал против SQL CE:

  1. У него нет просмотров , что может быть проблемой при миграции.
  2. Недавно мы сделали нечто подобное, что вы описали, и имело огромное влияние на производительность при переходе с SQL Server Express на SQL Server Compact Edition.

Мои рекомендации будут:

  1. Используйте SQLite (что мы и сделали для проекта, который я упомянул - он был намного более производительным, чем SQL CE в нашем случае) -или-
  2. Использовать VistaDB (что я и делал в других проектах; не так эффективно, как SQL Server Express, но все же достаточно)

Обе базы данных могут быть развернуты в XCOPY, как и SQL Server Compact Edition.

1 голос
/ 18 мая 2011

Я недавно работал с ним, кстати, я знаю об их использовании, что у SQL Express есть сервер для подключения, а Compact - это sdf-файл, поэтому первое, что вам нужно изменить, это подключениестрока к нему.

После этого изменения больше нет необходимости вносить какие-либо изменения, я помню, в Compact есть почти все инструкции экспресс-сервера, так что это не может быть большой проблемой.

Для получения дополнительной информации обратитесь к документации Microsoft или Википедия .

Увидимся.

0 голосов
/ 18 мая 2011

SQL CE имеет те же ограничения по размеру, что и Express, поэтому с вами все будет в порядке.

Что касается перемещения между ними, я нашел это для перемещения между базами данных Express и Compact 3.5.базы данных.Тогда я думаю, что вам нужно всего лишь изменить строки подключения (вместо того, чтобы указывать на хост / экземпляр, вы указываете на преобразованный файл).Тем не менее, между ними есть функции , поэтому вам может потребоваться изменить схему в исходной базе данных, чтобы преобразование прошло гладко.

...