• christophe.bernard 47659 - Monday, February 12, 2018 8:29 AM

    Hello all,
    we have a database under sql server 2008.
    This db contains some tables and one table contains 600 000 records in our production environments.
    This table is fill by some mobile device who synchronize every x minutes
    All works fine since several months ...

    But friday, i must to check some information on the production system => make some query.
    If begin by made a select * from xxxxxx
    This SELECT takes 1 minutes and 30 seconds ...for to retrieve => 600 000 records

    After several seconds, we notice that the mobile device can't synchronize WHILE the SELECT query isn"t complete ...

    what we sould do ?
    - add memory in our production server ?
    - export old datas for example datas old than 30 days into another system
    - ...

    Or WHAT do you suggest for to avoid that ?
    Is it many (1 minute and 30 second) for to make a select * from xxxx for 600 000 records ?

    Thanks for your explanation guys

    You take shared locks when you select so the devices can't get their locks to synchronize (insert, update, etc).
    As Eirikur already stated, we don't know enough about the data or table to say much else.
    But do you really need to do a select * on a 600,000 row table? Do you really need all rows and all columns to start your query? Even if it didn't take that long (which does seem long in your case),  I don't see where anyone could look through that much data. If you don't read through all of that data then you may want to change how you are querying. I worked on a similar vendor app and you really couldn't do something like that. there was a window of time where the devices usually weren't syncing and any ad hoc access was done during this window.

    Sue