2014-01-03 1 views
1

У меня есть приложение Windows Mobile, использующее SQL Server CE 3.5. Когда карманный компьютер запрашивает обновление системы, он получает файл .SDF, созданный на Windows Server. Эта система уже несколько лет работает на сервере Win 2003 без каких-либо проблем.Windows Mobile занимает много времени, чтобы открыть базу данных SQL Server CE, если она создана на 64-разрядной ОС.

Я переношу серверные процессы с сервера Win 2003 на сервер Win 2008 R2 и столкнулся с проблемой. После получения файла .SDF с нового 64-битного сервера карманный компьютер занимает более 20 секунд, чтобы открыть соединение с ним. Открытие соединения с .SDF, созданным на 32-битном сервере Win 2003, практически мгновенно. Мои эксперименты показали, что проблема возникает, когда .SDF построен на 64-битной машине, но не возникает, если .SDF построен на 32-битной машине.

Кстати, только первое открытие соединения происходит медленно. Последующие открытия являются мгновенными. Кто-нибудь знает, что я могу сделать, чтобы исправить это?

+0

См. Мой блог, здесь, http://erikej.blogspot.dk/2013/08/faq-why-is-opening-my-sql-server.html – ErikEJ

+0

Я согласен с сообщением в блоге ErikEJ – josef

ответ

1

Индексы в базе данных различаются на устройстве и ПК (32- или 64-разрядный). При первом открытии устройство обнаруживает, что индексы недействительны для текущей платформы, поэтому они должны удалять и воссоздавать их. Это требует времени. Единственное «решение» - переиндексировать их на устройстве на вашем конце, а затем развернуть базу данных, которая поступает с устройства, а не с сервера.

Смежные вопросы