Это не проблема. Создание класса базы данных имеет низкие накладные расходы.
Однако на самом деле создание соединения с базой данных сопряжено с большими накладными расходами, поэтому Windows выполняет пул соединений. Вкратце, когда процесс в первый раз создает соединение с БД, он ищет в пуле соединений существующее соединение с точно такой же строкой соединения. Если он не находит, он создает новый (дорогая операция). Когда этот процесс закрывает его и выдает его из области видимости, он фактически не закрывает соединение с БД, он помещает его в пул соединений. Остается до тех пор, пока тот же процесс не создаст другое соединение с той же строкой соединения. Затем он дает вам уже существующий из пула подключений.
Вы можете отключить пул подключений (через настройку в строке подключения), но обычно это очень плохая идея.