We are running SQL Server 2008 for our enterprise application (MES), for tracking product as it moves through the shop floor. All of the terminals are hooked to the same database through a data layer to the same database. We need a mechanism for updating the shop floor computers when a change takes place to a few tables. Right now we have a timer on the form that re-queries the database every 30 seconds. While in testing, this was fine, but now we have more terminals and more data flowing around, changes are not showing up in a timely manner. Although 30 seconds seems like a long time in between queries, product may move from one station to another within the 30 second window so it doesn't show up in the next queue for up to 30 seconds delaying work. Right now the proposed work around from the developers is to put an "update" button on the screen to force an update. This works, however, it does interfere with the work flow of the users.
I am wondering if there is a way for SQL Server to make a "shout out" when a table gets an update, delete, insert operation and send a refresh event that the stations could listen to and if the table they are monitoring changes, do a refresh from the table. There has been discussion of creating a table in the database that gives the operation (insert, update, delete) and the table name monitoring every second, then having the service send out an update. The table be monitored would be updated by SQL Server after each insert, update, and delete. Once the service picks up the records, I would delete the records keeping the table light so a constant query every 3-5 seconds or so won't pull down SQL Server, but again, there is a potential of breaking and falling back to the refresh button.
So if SQL Server could just notify this table changed, and this value changed in this column (we only need to monitor one column so we know which station to update) and have the application do the update.
I know this is long and I apologize, but there has to be a way to monitor a database of changes besides a timed query from a program that is returning a full dataset even if it doesn't need to. All I can see is SQL performance continuing to drop as more stations come on line.
Any thoughts or suggestions, or point to articles/code would be much appreciated. We are using SQL Server 2008 (RTM) Standard Edition on WIndows NT 6.0 X86.
Thanks.