SQLite vs SQL Server [закрыто]


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

2 52

2 ответа:

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

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

SQLite, которая интегрируется с вашим .Net-приложения лучше, чем SQL-сервера. Вы можете написать пользовательскую функцию на любом языке .NET, который работает внутри ядра SQLite, но все еще находится в вызывающем процессе и пространстве вашего приложения и, таким образом, может вызывать ваше приложение для интеграции дополнительных данных или выполнения действий при выполнении запроса. Эта очень необычная способность значительно облегчает определенные действия.

SQLite, как правило, намного быстрее, чем SQL Сервер.

однако SQLite поддерживает только один писатель одновременно (что означает выполнение отдельной транзакции). SQLite блокирует всю базу данных, когда ей нужна блокировка (чтение или запись), и только один писатель может одновременно удерживать блокировку записи. Благодаря своей скорости это на самом деле не проблема для приложений с низким и средним размером, но если у вас есть более высокий объем записи (сотни в секунду), то это может стать узким местом. Существует ряд возможных решений, таких как разделение данных базы данных на различные базы данных и кэширование записи в очередь и запись их асинхронно. Однако, если ваше приложение, скорее всего, столкнется с этими требованиями к использованию и еще не было написано для SQLite, то лучше использовать что-то другое, например SQL Server, который имеет более мелкую блокировку.

обновление: SQLite 3.7.0 добавил новый режим журнала под названием Write Ahead Locking, который поддерживает одновременное чтение во время записи. В нашем внутренний тест конкуренции мульти-цены, Время пошло от 110 секунд до 8 секунд для точно такой же последовательности спорных читает/пишет.

оба находятся в разных лигах в целом. Один из них построен для управления данными на уровне предприятия, а другой-для мобильных устройств (встроенная или серверная среда). Хотя развертывания SQLite могут содержать данные во многих сотнях GBs, но это не то, для чего он построен.

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