Использование.MDF базы данных SQL Server с ASP.NET по сравнению с Использованием SQL Server

Я в настоящее время пишу веб-сайт в ASP.NET MVC и моя база данных (который еще не имеет никаких данных в нем, это только имеет корректные таблицы), использует SQL Server 2008, который я установил на своей машине разработки. Я соединяюсь с базой данных из своего приложения при помощи Проводника Сервера, сопровождаемого LINQ к отображению SQL.

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

Я заметил, что возможно создать базу данных SQL Server из Visual Studio. Это затем хранится в каталоге App_Data.

Мои вопросы следующие:

  • Имеет смысл перемещать мой SQL Server DB из SQL Server и в каталог App_Data как .mdf файл?
  • Если так, как я могу переместить его? Я полагаю, что это называют Detach управляйте, это нет?
  • Есть ли любая производительность/проблемы безопасности, которая может произойти с a .mdf файл как это?
  • Моя намеченная установка работала бы хорошо с типичным виртуальным планом хостинга? Я надеюсь что .mdf база данных не будет говорить против ограниченного количества баз данных SQL Server, которые могут быть созданы с моим планом.

Я надеюсь, что этот вопрос не слишком широк.Заранее спасибо!

Примечание: Я только начинаю с ASP.NET MVC и все это, таким образом, я мог бы полностью неправильно понимать, как это, как предполагается, работает.

9
задан Maxim Zaslavsky 13 April 2010 в 17:21
поделиться

4 ответа

MDF App_Data - это база данных SQL Server, которая будет своевременно подключена к экземпляру SQL Server. Единственный способ получить доступ к MDF - подключиться к SQL Server. Visual Studio скрывает то, что происходит за кулисами, но вы по-прежнему используете экземпляр SQL Server. Это своевременное прикрепление MDF работает только с выпусками SQL Express. В SQL Express 2005 вы получите пользовательский экземпляр, см. Подключение к пользовательским экземплярам SQL Server Express (ADO.NET) . С помощью SQL Express 2008 вы можете контролировать, хотите ли вы использовать экземпляр пользователя или подключиться к экземпляру службы.

Вам нужно будет уточнить у своего хостинг-провайдера, считают ли они эту базу данных одной базой данных в плане или нет. Вы должны иметь в виду, что с точки зрения использования ресурсов присоединение базы данных с помощью строки подключения (что происходит при использовании параметра развертывания App_Data MDF) так же дорого, как и любой другой способ открытия и запуска базы данных, поэтому Я был бы очень удивлен, узнав, что они разрешают это и не учитывают количество баз данных, разрешенное в плане.

9
ответ дан 4 December 2019 в 13:00
поделиться

Все базы данных SQL Server представляют собой файлы .mdf . Файлы .mdf хранятся здесь: * C: \ Program Files \ Microsoft SQL Server \ MSSQL \ Data * (расположение по умолчанию).

Вы правы, что вам придется отсоединить базу данных SQL от сервера, чтобы переместить базу данных в папку App_Data. Вы можете сделать это, щелкнув правой кнопкой мыши базу данных в SSMS.

Преимущества перемещения базы данных в папку App_Data заключаются в следующем:

  1. База данных будет храниться там при использовании в производственной среде, и вы будете динамически присоединять базу данных к SQL Server при подключении к нему.
  2. Вы хотите опубликовать веб-сайт на своем сервере вместе с mdf в папке App_Data (что соответствует первой причине).
  3. Хранение всех файлов проекта в одном месте. Легко двигаться. Легко сделать резервную копию.

В вашем сценарии, где вы будете загружать базу данных через настраиваемую панель управления, я не вижу никаких преимуществ в перемещении базы данных в папку App_Data. Когда вы публикуете сайт, вы можете просто отсоединить БД, взять файл mdf и загрузить (у вашей панели управления могут быть другие способы импорта БД, например, сценарии SQL ...).

Чтобы ответить на ваши вопросы напрямую ...

Имеет ли смысл переместить мою базу данных SQL Server из SQL Server в каталог App_Data в виде файла .mdf {{1 }} файл?

Я так не думаю.

Если да, то как я могу его переместить?

Отсоединить.Вы можете сделать это, щелкнув правой кнопкой мыши базу данных в SSMS.

Существуют ли какие-либо проблемы с производительностью / безопасностью , которые могут возникнуть с файлом .mdf , подобным этому?

Я не уверен насчет различий в безопасности, но, как уже упоминалось, производительность может быть выше, если база данных остается подключенной к SQL Server.

Будет ли моя предполагаемая установка работать с типичным планом виртуального хостинга?

Вам нужно будет проверить, подсчитывают ли / разрешают ли они динамическое присоединение баз данных sql.

Надеюсь, это поможет. Я не эксперт.

5
ответ дан 4 December 2019 в 13:00
поделиться

Не используйте App_Data для своей базы данных. Это хорошо для быстрого «как» или создания прототипа, но не подходит для производственного сервера. Это может доставить вам много хлопот во время технического обслуживания. Я использовал его однажды и никогда больше ...

Да, производительность. Потому что он всегда должен прикреплять db. Это не большая проблема, если у вас крошечный интернет с несколькими посетителями в день.

Лучше спросить у своей службы хостинга, считают они это или нет.

2
ответ дан 4 December 2019 в 13:00
поделиться

Честно говоря, это может не отвечать на ваши вопросы напрямую, но я обнаружил, что вы настроили его на хостинге (а не локально) / импортируйте вашу базу данных в вашу хостинговую компанию, которая затем предоставит вам строку подключения к вашему хосту / db. После того, как вы «начнете работать» (или протестируете, загрузив свой сайт на хост) - измените строку подключения на ту, которая предоставлена ​​вашим хостом, в вашем web.config. Возможно, это слишком упрощенно, но у меня всегда работало.

0
ответ дан 4 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: