2015-04-02 11 views
5

Tôi đang sử dụng LocalDb trong môi trường thử nghiệm tích hợp - khởi tạo và xử lý cá thể của tôi trước và sau khi chạy thử nghiệm.Tôi có thể chạy LocalDb "trong bộ nhớ"

Tuy nhiên, khi tôi tạo cơ sở dữ liệu trong trường hợp của mình, nó vẫn xóa các bảng và dữ liệu của tôi sang đĩa. Có thể chạy LocalDb trong chế độ "trong bộ nhớ" không? Và nếu thế thì sao?

+0

Nếu bạn sử dụng transactioncope - https://github.com/ritterim/automation-sql – ErikEJ

+0

Tôi không hoàn toàn chắc chắn cách liên kết giúp (tôi đã tìm kiếm mã nguồn cho "giao dịch" nhưng không tìm thấy gì). Các bài kiểm tra tích hợp của tôi bao gồm các dịch vụ "đang xử lý" không truyền bá giao dịch - vì vậy chạy các kiểm tra của tôi trong một giao dịch sẽ không giúp ích - nhưng có thể tôi đã hiểu lầm nhận xét của bạn. – Lawrence

Trả lời

2

No. LocalDB vẫn là SQL Server và trong SQL Server không có khái niệm về cơ sở dữ liệu trong bộ nhớ. Tất cả các cơ sở dữ liệu được sao lưu đĩa, với bộ nhớ đệm trong bộ nhớ nằm trên đầu trang của chúng.

Có thể bạn có thể viết một bước tùy chỉnh trong bộ khai thác thử nghiệm để xóa cơ sở dữ liệu sau khi kiểm tra xong và xóa tệp cơ sở dữ liệu. Có lẽ thậm chí nó đã có sẵn nếu bạn đang sử dụng TFS để xây dựng và chạy thử nghiệm? Nhưng không có gì trong LocalDB để làm cho nó tự động.

+0

nó thực sự là không đúng sự thật rằng máy chủ sql không có trong bộ nhớ với GA của sql server 2014, nhưng localdb vẫn không xa như tôi biết. http://www.microsoft.com/en-us/server-cloud/solutions/in-memory.aspx –

+1

Tôi không nghĩ rằng tính năng Trong bộ nhớ của SQL Server 2014 bao gồm cơ sở dữ liệu trong bộ nhớ ** **. Có trong ** bộ nhớ ** bảng, nhưng tôi hiểu rằng ngay cả khi tất cả các bảng trong một cơ sở dữ liệu trong bộ nhớ, cơ sở dữ liệu vẫn được hỗ trợ bởi một tập tin với siêu dữ liệu, vv –

+0

BTW, nhờ sửa chữa lỗi đánh máy! –

4

Bạn có thể chạy thử nghiệm dựa vào cơ sở dữ liệu trong đĩa RAM. Tôi đã làm điều đó một thời gian trước đây và nó dường như cải thiện hiệu suất kiểm tra tích hợp theo hệ số 2 hoặc 3! Điều này đã được trên một máy ảo Windows 7 được lưu trữ trong một MacBook Pro với một SSD. Milage của bạn có thể sẽ tốt hơn nếu bạn có một HDD cơ khí.

Vì SQL Server cho phép bạn chỉ định tệp mdf trong chuỗi kết nối thông qua "AttachDbFileName =", bạn có thể tận dụng điều đó bằng cách trỏ tới mdf trong đĩa RAM.

Trình điều khiển thiết bị đĩa RAM tôi đã sử dụng là ImDisk, có sẵn cho cả Windows 64 và 32 bit. Các đối tác Linux rất nhiều.

Các vấn đề liên quan