Yapılan bir işlem diğer işlemlerden izole edilmelidir. Yani yaptığımız bir kayıt işleminin diğer işlemleri etkilememesi veya ne kadar etkileyeceğinin belirlenmesi gerekmektedir. Isolation Level ise bu izalosyon seviyesini belirtir.
SQL Server 2012 5 çeşit izolasyon seviyesini destekler.
1-)Read Uncommitted(level 0)
2-)Read Committed(level 1)
3-)Repeatable Read(level 2)
4-)Serializable(level 3)
5-)Snapshot Isolation
Bunlardan ilk 4 tanesi ANSI tarafından belirlenmiş standartlardır.
5 ve 6. maddeler ise SQL Server tarafından desteklenmektedir.
1-)Read Uncommitted
Diğer transactionlar tarafından değiştirilmiş ve işlenmemiş transactionlar okunabilir. Bu seçenek ayarlandığında kaydedilmemiş işlemler okunduğundan Dirty read (Kirli Okuma) olur. Okuma esnasında veri değerleri değiştirilebilir. İzalosayon seviyesi en az kısıtlayıcı değerdedir.
2-)Read Committed
Diğer transactionlar tarafından değiştirilmiş ancak commit edilmemiş transactionlar okunamaz. Dirty read (Kirli okuma ) olmaz. Bu seçenek Sql Server için defaul seçenektir.
3-)Repeatable Read
Bir üst seviyedeki bu izolasyon seviyesinde amaç aynı transaction içerisinde aynı okuma sonuçlarını almaktır. Bir transaction da modifiye edilmiş fakat commit edilmemiş veri diğer transactionlar tarafından okunamaz. Ama asıl amacı bir transaction da okunmuş ama henüz commit edilmemiş verinin diğer transactionlar tarafından güncellenememesini sağlamaktır.
4-)Serializable
En yüksek seviyedeki izolasyon seviyesidir.Repeatable Read Isolation’a ek olarak bu seviyede“Range Lock” mevcuttur.
5-)Snapshot Isolation
Oracle da bu mantıkla çalışır. Bu izolasyon seviyesinde ReadCommitted den dolayı oluşan Transaction içerisinde kalmış update kayıtlarına erişememe sorunu ortadan kalkar. Transaction içerisinde kalmış ve henüz commit edilmemiş kayıtların tempdb veritabanında snapshotları oluşturulur. Böylece diğer sessionların commit edilmemiş veri üzerinde okuyabilme imkanı sağlanır.
70-461 Sınavında Çıkan Soru Örneği-1
You work as a database developer at ABC.com. ABC has an in-house application named ABCApp3 that runs a Transact-SQL against a SQL Server 2012 database named SalesDB. ABC.com users repoert that ABCApp3 is functioning sluggishly. You discover that concurrent updates are causing blockages on the SalesDB database.
A-You should have the query run in the REPETABLE READ ISOLATION LEVEL
B-You should have the query run in the SERIALIZABLE ISOLATION LEVEL
C-You should have the query run in the READCOMMITED ISOLATION LEVEL
D-You should have the query run in the SNAPSHOT ISOLATION LEVEL
E-You should have the query run in the READPAST ISOLATION LEVEL
70-461 Sınavında Çıkan Soru Örneği-2
You work as a SQL Server 2012 database developer at ABC.com. ABC.com has a large database named SalesDB.New rows are inserted into the tables in the SalesDB database and updates to existing rows occur on a high frequency. The inserts and updates often blocked by queries retrieving and reading data.How would you prevent queries that retrieve and read data from blocking queries that insert and update data.
A-You should have the query run in the REPETABLE READ ISOLATION LEVEL
B-You should have the query run in the SERIALIZABLE ISOLATION LEVEL
C-You should have the query run in the READCOMMITED ISOLATION LEVEL
D-You should have the query run in the SNAPSHOT ISOLATION LEVEL
E-You should have the query run in the READPAST ISOLATION LEVEL
Sql Server DateTime Veri Tipindeki Datayı Türkçe Formatında Göstermek
SQL'de tarihleri farklı formatlarda göstermek için FORMAT fonksiyonunu kullanabilirsiniz. Türkçe kısa tarih formatı genellikle "...
-
Bugün sizlere SQL Server 2012 ile gelen bir fonksiyon olan Concat fonksiyonundan bahsetmek istiyorum. Concat fonksiyonu 2 veya daha fazla ...
-
CHAR, NCHAR, VARCHAR ve NVARCHAR data tiplerinin hepsi text veya string verilerini saklamak için kullanılır. Ancak aralarında bazı farkl...