I'm working on a legal matter where our client, an eCommerce company using SQL Server 2008 is accused of deleting orders because there are gaps in their identity fields. I realize that these gaps are more than likely created because of system outages and DDoS attacks, but I need to find documentation from Microsoft to support that claim. I’m hoping you can help me understand the following regarding in SQL Server 2008:
- What happens to IDs that were in the process of being inserted when the server is rebooted? Are they lost or does the database attempt to reuse them?
- I know that in SQL Server 2012 and on there is the possibility of a cache of identity values and turning this off. What was the option in SQL Server 2008? Was there a cache at all? If so was there an ability to control the cache?
“Consecutive values after server restart or other failures –SQL Server might cache identity values for performance reasons and some of the assigned values can be lost during a database failure or server restart. This can result in gaps in the identity value upon insert. If gaps are not acceptable then the application should use a sequence generator with the NOCACHE option or use their own mechanism to generate key values.” http://msdn.microsoft.com/en-us/library/ms186775(v=sql.110).aspx
- Is there any documentation about identity fields and a high volume of transactions, like in the case of a DDoS attack? Is it possible that there is so much traffic that gaps in the identity field are being created because high volumes?
Thank you very much for your help in this matter,
Karla