I am receiving data through a com port continuously and doing some decoding. When decoding is done i have to store the results in a sql database. I am thinking since the decoding is done (in a while loop always running) dozens of times per second and data need to be stored to the database dozen of times every second if it is wise to open and close the connection to the sql server in each while loop or just leave it open and continue to write data to the database.
First of all is this possible? Secondly if the connection remains open can third party applications or computer access the database at the same time and read data as my programm stores data?
I am receiving data through a com port continuously and doing some decoding. When
Share
A database supports more than one concurrent connection, so yes it is very feasible in this scenario to leave the DB connection open – you will only lock out others if you have i.e. a long running query that results in row/ table locking. Just close the connection when you are done.
Also consider though that most DBs (i.e. SQL Server) use connection pooling internally, so even though you close a DB connection it just goes back to the pool and is not physically closed – the pool manages the physical DB connections – this results in much better performance, so the impact of opening/closing connections rapidly is reduced.
From MSDN: