2015-04-02 22 views
5

Używam LocalDb w środowisku testowania integracji - tworzenie instancji i usuwanie mojej instancji przed i po uruchomieniu testów.Czy mogę uruchomić LocalDb "in-memory"

Jednak po utworzeniu bazy danych w mojej instancji, nadal opróżnia ona moje tabele i dane na dysk. Czy można uruchomić LocalDb w trybie "w pamięci"? A jeśli tak, to w jaki sposób?

+0

Jeśli używasz protocolcope - https://github.com/ritterim/automation-sql – ErikEJ

+0

Nie jestem do końca pewien, w jaki sposób link pomaga (szukałem kodu źródłowego dla "transakcji", ale niczego nie znalazłem). Moje testy integracyjne obejmują usługi "w toku", które nie propagują transakcji - więc uruchomienie moich testów w ramach jednej transakcji nie pomoże - ale może źle zrozumiałem twój komentarz. – Lawrence

Odpowiedz

2

Nie. LocalDB to nadal SQL Server, aw SQL Server nie ma koncepcji bazy danych w pamięci. Wszystkie bazy danych są zabezpieczone dyskami, a na nich znajduje się pamięć podręczna w pamięci.

Prawdopodobnie można napisać niestandardowy krok w wiązce testowej, aby usunąć bazy danych po zakończeniu testów i usunąć pliki bazy danych. Może nawet już tam jest, jeśli używasz TFS do budowania i testów? Ale nie ma nic w LocalDB, aby uczynić go automatycznym.

+0

W rzeczywistości nie jest prawdą, że serwer sql nie ma w pamięci serwera GA serwera sql 2014, ale localdb nadal nie jest tak daleko, jak wiem. http://www.microsoft.com/en-us/server-cloud/solutions/in-memory.aspx –

+1

Nie sądzę, że funkcje In-Memory programu SQL Server 2014 obejmują ** bazy danych w pamięci **. Są tabele ** w pamięci **, ale rozumiem, że nawet jeśli wszystkie tabele w bazie danych są w pamięci, baza danych jest nadal wspierana przez plik z metadanymi itp. –

+0

BTW, dzięki za naprawienie literówki! –

4

Można uruchomić testy na bazie danych na dysku RAM. Robiłem to jakiś czas temu i wydawało się, że poprawiono wydajność testów integracyjnych o czynnik 2 lub 3! To było na maszynie wirtualnej Windows 7 hostowanej w MacBooku Pro z dyskiem SSD. Twój przebieg będzie prawdopodobnie lepszy, jeśli masz mechaniczny dysk twardy.

Ponieważ SQL Server pozwala na określenie pliku mdf w łańcuchu połączenia za pomocą "AttachDbFileName =", możesz to wykorzystać, wskazując na mdf w RAM-dysku.

Sterownik dysku RAM, którego użyłem, to ImDisk, który jest dostępny dla 64- i 32-bitowego systemu Windows. Odpowiedniki linuksowe są liczne.