Я, конечно, был бы очень удивлен, если это сама база данных, SQLServer - чрезвычайно надежный продукт - намного лучше, чем что-либо в Office или самой Windows, и на него можно полностью и полностью положиться.
1,5 ГБ - это ничего для rdbms - и все они будут просто заполнять свои доступные буферы кэшированными данными. Чтение в ядре, как правило, в 1000 раз и более быстрее, чем доступ к диску, поэтому оптимальным вариантом является использование каждого куска памяти, доступного для него. Фактически, если вы посмотрите на любую теорию проектирования СУБД, вы увидите, что алгоритмам, используемым для определения того, что следует выбрасывать из ядра, уделяется значительное внимание, поскольку это сильно влияет на производительность.
Большинство выделенных серверов БД будут работать с 4 ГБ памяти (при условии 32-битной), при этом 90% выделено для SQL Server, поэтому вы, конечно, не смотрите здесь на какие-либо граничные условия.
Ваша наиболее вероятная проблема - ошибка кодирования или структурная проблема (например, блокировка)
Хотя у меня есть одно предупреждение. Очень (очень, очень - как два раза в 10 лет) иногда я видел ошибки возврата страниц SQL Server из-за повреждения файлов базы данных, оба раза вызванные периодическим аппаратным отказом. К счастью, в обоих случаях они были на страницах, содержащих индексы, и, удалив индекс, восстановив базу данных, сделав резервную копию и восстановив на новый диск, я смог восстановить ее, не возвращаясь к резервным копиям. Я не уверен относительно того, как ошибка разрыва страницы будет передаваться в API C #, но, возможно, если у вас есть ошибка диска, которая проявляется только после заполнения ядра (то есть где-то в некотором пространстве подкачки), то ошибка индекса вне границ это действительно то проявление, которое я ожидал, так как вызов мог возвращать ненужную информацию - следовательно, выходить за пределы диапазона массива.