Jika saya memiliki 8GB RAM di server dan saya menjalankan 4 contoh SQL Express, akankah batas total memori yang digunakan oleh SQL Server adalah 1GB atau 4GB?
Setiap instance dapat menggunakan memori hingga 1GB untuk buffer pool . Setiap instance dapat menggunakan sedikit lebih dari 1GB total karena tidak semua alokasi memori melalui kolam buffer. Dalam kasus Anda, memori maksimum yang digunakan oleh empat instance untuk buffer pool adalah 4GB.
Untuk mengkonfirmasi, saya mulai dua contoh dari SQL Server 2008 Express Database Engine, melakukan beberapa aktivitas untuk memuat kumpulan buffer (terpisah), dan kemudian melihat pemanfaatan memori per-instance dalam beberapa cara, misalnya menggunakan DBCC MEMORYSTATUS atau dengan menghitung jumlah buffer menggunakan DMV sys.dm_os_buffer_descriptors .
Nomor penggunaan memori fisik di bawah ini diperoleh menggunakan kueri simultan terhadap sistem DMV sys.dm_os_process_memory pada setiap instance dari mesin database:
SELECT
dopm.physical_memory_in_use_kb
FROM sys.dm_os_process_memory AS dopm;
Keluaran:
╔═══════════╦═══════════╗
║ Instance1 ║ Instance2 ║
╠═══════════╬═══════════╣
║ 1102872 ║ 1059812 ║
╚═══════════╩═══════════╝
Masing-masingnya sedikit lebih dari 1GB karena total penggunaan memori fisik mencakup lebih dari sekedar penggunaan buffer pool, seperti yang disebutkan sebelumnya.
Apakah disarankan untuk menjalankan beberapa instance seperti ini agar setiap database dapat menggunakan sumber daya dengan lebih baik (dengan asumsi server memiliki banyak sumber daya)?
Jika database pada setiap instance berfungsi secara independen maka setidaknya dapat dijalankan untuk menjalankan beberapa instance Express dengan cara ini, meskipun Anda perlu memperhatikan konfigurasi dan pemeliharaan mungkin dibuat lebih kompleks.
Anda mungkin lebih baik dilayani menggunakan edisi lain, seperti Edisi Pengembang berfitur lengkap (dan sangat murah), jika penggunaan yang dimaksudkan cocok dengan lisensi). Anda perlu mengatakan lebih banyak tentang keadaan untuk mendapatkan jawaban yang jelas tentang hal ini.
SQL Server Database Engine
saranaA Single Instance
. Setiap kali Anda harus mengubah server dialog koneksi yang Anda hubungkan (misalnyalocalhost\dev
vslocalhost\test
) itu "Mesin Virtual" baru atau "Mesin" baru. Saya pikir saya akan menjernihkannya.