2009-10-18 15 views
7

Używam Visual Studio 2008. i jestem nowy w sqlce. Sprawdzam plik sdf i jeśli sdf nie istnieje, tworzę, a następnie wstawić około 5000 wierszy do mojego sqlce db.Jeśli istnieje sdf, najpierw usuń wszystkie wiersze tabel a następnie wstaw te rekordy do istniejących tabel. Po wstawieniu kompletuję, zbieram bazę danych. A tak przy okazji, kompaktowanie trwa około 13 sekund. Wiem, że metoda, która wywołuje Shrink.Shrink i Compact powoduje, że db jest mniejszy, ale w tym scenerio który z nich powinien używam? Jak mogę zrobić kompaktowanie w krótszym czasie? Nie potrzebuję kopii zapasowej sdf i po kompaktowym, i usunąć stary sdf.i przeczytać this temat, ale nie mógł zdecydować, który powinienem użyć.Shrink lub kompaktowy w Sql Server CE?

Odpowiedz

13

proszę zobaczyć:

który cytuje z SQL Server Compact Team Blog:

SqlCeEngine/ISSCEEngine: Shrink Vs Compact Różnica między tych dwóch jest znacznie podobny na wewnętrzny i zewnętrzny fragment pamięci mentacja.

Od SqlCeEngine.Shrink documentation:

odzyskuje zmarnowana przestrzeń w bazie przesuwając pusty i nieprzydzielone stronach do końca pliku, a następnie obcinanie pliku. Można skonfigurować automatyczną bazę danych, aby automatycznie pomniejszyć ją o , ustawiając opcję progu automatycznego owijania w łańcuchu połączenia. Zmniejszenie nie powoduje utworzenia tymczasowego pliku bazy danych .

Od SqlCeEngine.Compact documentation:

odzyskuje zmarnowana przestrzeń w bazie tworząc nowy plik bazy danych z istniejącego pliku. Tworząc nowy środek bazy danych o nazwie , odzyskuje wolną przestrzeń między wierszami.

Aby być bardziej zrozumiałym, Shrink twierdzi, że strony są całkowicie darmowe lub nieprzydzielone; gdzie jako, Kompaktowe roszczenia zmarnowane miejsce na stronie też. Dlatego Kompakt wymaga utworzenia nowego pliku bazy danych .

Pusta przestrzeń z na stronie może być w wyniku:

1) Jeżeli było 5 rzędów w stronę a dwa z nich są usuwane

2) Jeżeli było wiersz środkowa część strony który na aktualizacji wymagane więcej przestrzeń, został przeniesiony na strony (Ex: aktualizacja kolumna nvarchar)

Puste strony i nieprzydzielone stron może pozostać w bazie danych jako re DOPROWADZIĆ od:

1) Wszystkie wiersze na stronie są usuwane

2) Ogólna tabela jest odrzucany

Powiązane problemy