-
1.Tempdb does not Follow all ACID rules.
Answer of Bonus Question
1.Tempdb Does not follow property Durability.
2.Tempdb is created whenever sql server is restarted so all changes in tempdb are gone.what if system is crash and starts again we will have news tempdb.
commented on Aug 6 2012 1:01AM
|
-
It's tempdb database and it doesn't follow Durability property of ACID. The reason is this database is cleared on every SQL server start, so there is no need to recover data in it
commented on Aug 6 2012 1:17AM
|
-
Nice question Nakul.
My answer is: TempDB (Does not follow: Durability)
Reason: SQL Server build/create 'TempDB' whenever we restart the server/service. If you are doing some calculation using TempDB (you are in middle of something) and suddenly SQL Server crashes and you have to restart the server/service then all your temporary data stored in TempDB is no longer available. You have to start your process once again.
It is correct behavior (logicall as well) as TempDB is created for temporary purpose only. So, whenever connection has been closed, local temp tables are also dropped automatically.
commented on Aug 6 2012 1:23AM
|
-
All user databases in SQL Server must and do support ACID. All that's left are the system databases, which are:
- master - the repository for system stored procedures, schema views, functions, DM views, and so on.
- model - an empty, basic database that new databases are copied from.
- msdb - the location where backup data, jobs, SSIS packages, and other server-level data is stored.
- tempdb - a frequently-used data storage location that holds metadata about temporary object such as temp tables and table variables, as well as their data if not kept in memory. Also, when the server needs work tables, it stores them in tempdb. For example, if a query needs a hash plan and exceeds its memory grant, it will "spill" to tempdb. Tempdb is also used to maintain cursors, and it holds versions of table rows generated by snapshot isolation & row versioning isolation levels, online index operations, Multiple Active Result Sets (MARS), and AFTER triggers.
Only one of these databases has any reason for or allowance of not supporting all the properties of ACID: tempdb.
- The ACID property it does not support is durability.
The reason it does not maintain durability is that in tempdb, data is temporary by nature, and upon certain conditions this data will be abandoned and not persisted/permanently committed to disk:
- When the session that created a temp table disconnects, the temp table is destroyed. Note: this includes temporary stored procedures, as well as all normally-named objects that are created while using the tempdb database, e.g.
USE tempdb; CREATE TABLE a (b int); actually creates a temporary table which is destroyed upon disconnect.
- When the session that created a global temp table disconnects, and all the sessions referring to it disconnect, the global temp table is destroyed.
- When all the other uses for tempdb mentioned above are no longer needed, the associated data is abandoned:
- a work table is no longer needed
- row versions no longer need to be maintained
- a cursor is closed
- MARS are closed
- an AFTER trigger completes, and so on.
Note that when data in tempdb is "destroyed" this does not mean that all the data is immediately overwritten, but that the metadata about the data is deleted. This is true in any database, not just tempdb. When a table is dropped, only the minimum I/O is done necessary to "deallocate."
commented on Aug 6 2012 1:52AM
|
-
Answer is :TempDB Database.
because when the SQl Server restarted We will get new TempDb ,all changes are gone.
and tempDb does not follow "Durability" property of ACID.
commented on Aug 6 2012 1:52AM
|
-
The answer is TempDB. TempDB does not meet the Durability property. TempDB is created at SQL Server startup from a copy of Model database.
commented on Aug 6 2012 6:18AM
|
-
Answer is TempDB Database.
commented on Aug 7 2012 4:17AM
|
-
I agree with comments. Because answer is same in all the comments.
commented on Aug 7 2012 5:15AM
|
-
sk2000, first of all the question was:
Which SQL Server database does not
follow one of the ACID properties?
SQL Server is RDBMS, not NoSQL DBMS. And one more thing: NoSQL is a movement and the BASE (Basically Available, Soft state, Eventual consistency) claimed to be the opposite of ACID. But there are some NoSQL databases that have ACID transactions (for example, Berkeley DB; GT.M. and others).
commented on Aug 7 2012 11:52PM
|
|