currently I'm working on TCP/IP program, the clients will be about 1000 terminals and during the day they will keep sending TCP/IP strings with approval requests, the server will examine those request with the client terminal data stored in SQL database and will send back a true or false.

since the database of those terminals is changing only about 5-10 times a day i choose to load the information into dataset once the program start and re-populated it every 30 minutes, now I'm facing two questions:

1) is the way i've choose is the correct way? i mean is querying a dataset is much faster then querying SQL Database.

2) what will happen if a client will try to connect and use the stored dataset in exactly the same time that my program is re-populated the dataset.

Thanks.