Временные базы данных
Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) создает временную базу данных, в которой хранятся такие временные данные, как.
- Промежуточные результирующие наборы, создаваемые во время запроса.
- Промежуточные сортируемые таблицы, создаваемые при исполнении предложения ORDER BY, GROUP BY или DISTINCT.
Временная база данных создается, только если необходимость в этом указывается явным образом. Имя должно быть указано при запуске ядра. Временная база данных удаляется после выключения ядра базы данных. В результате непредвиденного завершения работы приложения SQL Server Compact Edition или возникновения проблемы с синхронизацией файлов, файлы временной базы данных остаются в системе. Их необходимо удалять вручную.
Расположение временной базы данных
Если для операций требуется большая временная база данных, необходимо явным образом указать ее расположение. Если расположения временной базы данных не указано, в качестве него можно задать расположение текущей базы данных. Для временной базы данных не требуется указывать имени; имя файла начинается с "SQLCE", например: SQLCE334241234.tmp.
Расположение временной базы данных необходимо указать до запуска ядра и нельзя изменять во время его работы. Изменить расположение временной базы данных можно при ее сжатии. Дополнительные сведения см. в разделах Обслуживание баз данных и Как сжать базу данных (программным путем).
Указание расположения
Расположение временной базы данных указывается в строке подключения к базе данных с помощью параметра temp path, temp file directory или ssce:temp file directory .
Примечание. |
---|
Для временной базы данных можно задать только уже существующее расположение. |
Дополнительные сведения см. в разделах Как указать расположение временной базы данных ADO.NET (программным путем), Как указать расположение временной базы данных с помощью репликации и объектов RDA, а также Как задать расположение временной базы данных с помощью OLE DB (программным путем).
Воспользуйтесь строкой подключения с объектами SqlCeConnection, SqlCeReplication и SqlCeRemoteDataAccess. Для объекта SqlCeReplication расположение временной базы данных необходимо включить для всех методов, использующих свойство SubscriberConnectionString. Методы перечислены в следующей таблице.
Только собственный | Только управляемый | Собственный и управляемый |
---|---|---|
|
|
|
Для объекта SqlCeRemoteDataAccess расположение временной базы данных необходимо включить для всех методов, использующих свойство LocalConnectionString. Такими методами являются:
- RDA_Object.Pull (собственный и управляемый)
- RDA_Object.Push (собственный и управляемый)
Увеличение размера временной базы данных
Во время обычной работы большие базы данных могут создавать много временных данных. Когда размер временной базы данных увеличивается настолько, что на устройстве хранения, используемом по умолчанию, недостаточно места, или достигается максимальный размер временной базы данных, происходит сбой приложения.
Следующие операции приводят к увеличению размера базы данных, особенно если группа таких операций содержится в одной явной транзакции.
- Инструкции UPDATE и DELETE, которые относятся к большому объему данных.
- Операции сортировки. Возможно, при наличии индекса, подходящего для сортировки, последняя не потребует использования временной базы данных. Некоторые операции сортировки могут создавать ряд дополнительных временных файлов для временных буферов сортировки. Эти файлы отличаются от временной базы данных. Для каждой базы данных есть лишь одна временная база, тогда как количество файлов в буфере сортировки не ограничено.
Дополнительные сведения о явных транзакциях см. в разделе Типы транзакций.
Объем файлов базы данных не превысит ограниченную память устройства, если вместо использования внутреннего ОЗУ хранить базы данных на карте памяти.