2012-05-03

Execution Planı Görmek İçin Hangi Yetkinin Olması Gerekir?

Execution planı görmek için ilgili kullanıcının minimum  showplan yetkisinin olması gerekir. Bunun yanında dbcreator, db_owner yada sysadmin rollerinden birisine sahip olan bir kullanıcı da execution planları görebilir.


Execution planı görme yetkisini vermek için aşağıdaki kodu kullanabilirsiniz:


grant showplan to [KullaniciAdi]

2012-04-27

SQL Server 2012 Identity Değerinin 1000 Artması Bugı

SQL Server 2012 Yenilikleri'ni anlattığım webcast'e Mehmet Bülent YILDIZ'ın(@pastelrenk)) identity ile ilgili sorduğu "net stop ile SQL Server servisini durdurup xcopy çalıştırıp ardından net start ile SQL Server servisini başlattığımda tablomdaki identity alanı neden 1000 artıyor?" sorusu SQL Server 2012'de bir bug. Bug'ı Grant Fritchey AlwaysOn için girmiş fakat her servis stop start olduğunda identity alanlarının bir sonraki değeri 1000 artıyor. Bug'ı reproduce edip, oyladım. Sizler de ilgili bug'ı oylarsanız daha hızlı çözülür. Bug'ın hızlı bir şekilde Microsoft tarafından giderileceğine inanıyorum. 

Dün sabah saat 06:00 ile bu gece 01:30 zaman aralığının bilgisayar başında geçirip sonucun bug ile neticelenmesi yorgunluğuma bir nebze hafifletti.

2012-04-26

"EXECUTE statement failed because its WITH RESULT SETS" Hatası ve Çözüm Yolu


SQL Server 2012'de sp çalıştırıp aşağıdaki gibi bir hata mesajı alıyorsanız sp'niz birden çok result döndürüyor siz ise WITH RESULT SETS içerisinde tek result döndürmeye çalışıyorsunuz. SP nizi inceleyip; SP'niz kaç adet result döndüyorsa WITH RESULT SETS te o kadar result döndürmelisiniz.


"Msg 11535, Level 16, State 1, Procedure ProductList, Line 10
EXECUTE statement failed because its WITH RESULT SETS clause specified 1 result set(s), and the statement tried to send more result sets than this."

2012-04-08

Webcast: SQL Server 2012 Yenilikleri

Çözümpark'ın öncülüğünde konuşmacı olarak katılacağım  "SQL Server  2012 Yenilikleri"  konulu webcast için gerekli bilgileri aşağıda bulabilirsiniz:

2012-03-23

SQL Server'da Domaindeki Windows Grupları Bulma

SQL Server'da bir domain'de bulunan windows grup isimlerine ihtiyacınız olduğunda yada elinizdeki windows grupların var olup olmadığını; doğru olup olmadığını teyit etmek istediğinizde; Active Directory'den sorumlu arkadaşların kapısını çalmaktan sıkıldıysanız ve onlar da sizi görmekten sıkıldıysalar buyrun yazının devamına.

2012-03-07

SQL Server 2012 Çıktı!

Değerli okuyucular,

Bir ilki daha sizlerle paylaşayım; SQL Server 2012 RTM versiyonu dün gece salıverildi.
SQL Server 2012 RTM versiyona http://www.microsoft.com/sqlserver/en/us/default.aspx adresinden ulaşabilirsiniz. SQL Server 2012 evaluation sürümünü http://www.microsoft.com/sqlserver/en/us/get-sql-server/try-it.aspx adresinden indirebilirsiniz. SQL ServerSQL Server 2012 meraklısına, bekleyenlerine duyurulur.

2012-03-03

SQL Server 2012 Sanal Lansmanı



8 Mart 2012 tarihinde gerçekleşecek SQL Server 2012 Sanal Lansmanda, SQL Server 2012 ile Yeni Veri Dünyasına katılmanıza olanak tanıyacak. Yalnızca Microsoft ürün ekipleriyle değil, aynı zamanda Microsoft'un iş ortaklarıyla ve en yenilikçi müşterileriyle bir araya gelebilirsiniz.

SQL Server 2012 Sanal Lansmanı 14 tanesi yerel olmak üzere 45'in üzerinde oturumla SQL Server 2012 hakkında öğrenmek istediğiniz her şeye istediğiniz anda ulaşabileceksiniz.

SQL Server 2012'nin sunduğu iş kritik sağlamlık, çığır açan iş zekası ve size göre şekillenen bulut altyapısını hemen keşfetmek için SQL Server 2012 sanal lansmanını kaçırmayın.


2012-02-28

Webcast: SQL Server Failover Cluster Installation

29 Şubat Çarşamba 21:00-22:00 saatleri arasında "SQL Server Failover Cluster Installation" konulu webcast'ı Hakan Yüksel ile birlikte sunuyor olacağım. Konuya ilgi duyan herkesi yarın akşam webcast'e beklerim.  Şubat ayının son günü ve 4 yılda bir yaşanan bu günde Çözümpark'ın sponsorluğunda webcast'ı kaçırmamanızı tavsiye ederim.

Webcast'e https://www.livemeeting.com/cc/mvp/join?id=TW9NBF&role=attend&pw=2NM%7E%60JK%7Bt adresinden ulaşabilirsiniz.

2012-02-23

SQL Server’da Bir Kaydın Fiziksel Konumunu Bulma

Bu makalemde  undocumented komut ve fonksiyonlar yardımıyla SQL Server'da bir tablodaki bir kayıt satırının fiziksel konumunu nasıl bulunacağını ve fiziksel konumdan nasıl okunacağını aktaracağım. 

2012-02-20

Bir Tablodaki İndekslerin Page Sayısını Bulma

Bu yazımda sizlere, zaman zaman benim de ihtiyaç duyduğum bir konuya değineceğim: Bir tabloda bulunan indeklerin her birisinin toplam page sayısı bulma.

2012-02-11

Veritabanlarımın Boyutu Kaç GB?

Bu yazımda SQL Server veritabanı sunucularınızda bulunan tüm veritabanlarının tek tek ve tamamının boyutunun T-SQL ile nasıl bulunacağına değineceğim.

2012-02-10

The History of SQL Server

SQL Server'ın doğduğu günden bu yana nasıl büyüyüp geliştiğini gösteren kısa ve güzel bir video.

2012-01-28

SQL Server 2012 RTM Sürümünün Çıkış Tarihi Belli Oldu

SQL Server 2012 RTM sürümünün ne zaman çıkacağı, sürekli sorulan ve birkaç gün öncesine kadar tam olarak cevabı bilinmeyen bir soru idi.

2011-12-31

SQL Server 2012 Upgrade: Unutulmaması Gerekenler!

SQL Ser ver 2005/2008 veritabanlarınızı SQL Server 2012 versiyonuna yükseltirken aşağıdaki adımları unutmamanızı tavsiye ederim:

2011-12-28

SQL Server 2008 Backup Compression ile Yer ve Zamandan Tasarruf Sağlayın

Veritabanlarınızın boyutu zamanla büyüyorsa veritabanı yedeklerinizin boyutu da zamanla büyüyecektir. Büyüyen yedek boyutları sadece büyümekle kalmayıp yedekleme sürelerini  ve network trafiğinizdeki yoğunluğu da artıracaktır.

2011-12-11

SQL Server 2008 SP2 Kurulabilir Kontrolü

SQL Server 2008 SP2 kurulumunda SQL Server 2008 SP2 Kurulum Hatası ve Çözümü adlı yazımda da bahsettiğim hata ile karşılaşmamak için Database Default Location ın var olup olmadığının kontrolünün yapılması gerekir.

2011-12-08

Silinen Offline Bir Veritabanın Dosyaları Silinmez

Veritabanı silme ile ilgili olarak bir çok kişinin bildiği  "Bir veritabanı silindiği zaman o veritabanı altındaki tüm .mdf, .ndf ve .ldf dosyaları da otomatik olarak silinir" bilgisi tam olarak öyle değil. Bu konudaki doğrular aşağıdadır:

2011-11-26

SQL Server 2012 Audit Yenilikleri

Bu yazımda SQL Server 2012 ile birlikte Audit tarafındaki yeniliklere değineceğim.

SQL Server 2008 ile birlikte gelen güzel özelliklerden birisi de Audit idi. Audit, veritabanı tarafında güvenlik ile ilgili yönetimsel işleri kolaylaştırdığı gibi özellikle denetimden geçen firmaların denetimlerinin daha rahat geçmesine vesile oldu.

SQL Server 2012 ile birlikte audit tarafında gelen yenilikler:

2011-11-17

SQL Server 2012 Release Candidate (RC)

SQL Server 2012 Release Candidate (RC) 32-bit ve 64-bit versiyonlarını https://www.microsoft.com/betaexperience/pd/SQLDCTP3CTA/enus/ adresinden indirebilirsiniz. Ayrıca SQL Server 2012 Release Candidate versiyon için yayınlanan Books Online'a ise http://msdn.microsoft.com/en-us/library/ms130214(SQL.110).aspx adresinden ulaşabilirsiniz.

SQL Server 2012 RC sürümü beklediğimden erken çıktı.

SQL Server 2012 Release Candidate (RC) ile sağlanan katma değerler:

2011-10-22

2011-10-20

SQL Server Öncüleri Lansmanı

Tarih : 21 Ekim 2011 Cuma
Saat :  09.00 - 16.15
Yer  :  Microsoft İstanbul Ofisi
Jüpiter Toplantı Salonu
Bellevue Residance
Aydın Sok No:7 Levent

Küresel çapta faaliyet gösteren, en büyük SQL Server topluluğu SQL Pass’ın (Professional Association for SQL Server) Türkiye Şubesi olarak çalışmaya başlayan SQL Server Öncüleri, tanıtım toplantısına sizleri de davet ediyor.

2011-10-12

SQL Server Code Named "Denali" SQL Server 2012 Oluyor

  • SQL Server Code Named "Denali" olarak bildiğimiz SQL Server'ın yeni sürümü SQL Server 2012 adını alacak. SQL Server 2012 nin RTM versiyonu 2012 yılının ilk yarısında çıkacak.
  • Ayrıca “Project Crescent” kod adı ile geliştirilen ürün "Power View" adıyla karşımızda olacak. Meraklısına, sevenlerine ve bekleyenlerine duyurulur.
  • SQL Azure'daki veritabanı boyutu limiti 50 GB dan 150 GB çıkartılmış. Daha büyük veritabanların Azure taşınması için Microsoft'ın bu sınırı daha da yükseltmesi gerekiyor.
  • Microsoft, SQL Server'da yapılacak yeni geliştirmelerde Datetime, SmallDateTime veri tiplerini  önermiyor. Bunun yerine  Date, Time, Datetime2  veri tiplerini öneriyor.
  • Yine merak edenler için : SQL Server 2012 de CDC tarafında herhangi bir değişiklik gelmiyor. CDC tarafındaki performans yükünü iyileştirme beklentilerimizi başka bahara erteledik.

2011-10-11

SQL Server 2012 Denali : Resource Governor Değişiklikleri

Başlığı görünce heyacanlanıp hemen aşırı beklenti içerisine girmeyelim. Resource Governor'daki beklentimiz olan I/O tarafındaki kaynak yönetimi maalesef Denali'de de gelmiyor. Denali'de Resource Governor tarafında aşağıdaki değişiklikler var:

2011-10-07

SQL Server 2008 Service Pack 3 (SP3) Çıktı!

Microsoft SQL Server 2008 Service Pack 3 (SP3) i http://www.microsoft.com/download/en/details.aspx?id=27594 adresinden indirebilirsiniz.

SQL Server 2008 SP3 ile giderilen hataların listesine http://support.microsoft.com/?kbid=2546951 adresinden ulaşabilirsiniz.


SQL Server 2008 SP3 ile ilgili Microsoft'un açıklaması aşağıdadır:

2011-10-02

Windows Authentication Olarak Bağlanan Kullanıcının Security Grubunu Bulma

SQL Server veritabanı sistemine windows authentication olarak bağlanan bir kullanıcının security grubunu iki farklı şekilde bulabilirsiniz.

2011-09-27

Performance Tuning Webcast Videosu


14 Eylül 2011 saat 21:00'de yapmış olduğum SQL Server - Performance Tuning webcast'ini kaçıranlar yada tekrardan izlemek isteyenler Çözümpark'tan videosuna ulaşabilirler.

2011-09-19

Şema Adını Değiştirme (Change Schema Name)

SQL Server'da herhangi bir nesnenin şema adını aşağıdaki kod ile değiştirebilirsiniz:

ALTER
SCHEMA [SchemaName_New] TRANSFER [SchemaName_Old].[ObjectName]

Not:  Şeması değiştirilen nesneye ait tüm yetkiler uçacağından şemayı değiştirmeden yetkilere ait scriptleri çıkarmanızı tavsiye ederim.

2011-09-07

SQL Server 2008 SP2 Kurulum Hatası ve Çözümü

Bugün sanal ortamdaki stand-alone bir SQL Server 2008 sunucumuza  SP2 yüklemesi yaparken yüklemenin normalden fazla uzaması beni şüphelendirdi. Hemen Windows Event loglarına baktım. Kurulum yaptığım andan itibaren alınan hata ve uyarıları inceledim.  Aşağıdaki iki hata dikkatimi çekti:

Hata-1:
"Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online."


Hata-2:
"Script level upgrade for database 'master' failed because upgrade step 'sqlagent100_msdb_upgrade.sql' encountered error 598, state 1, severity 25. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion."

Hatalar ile ilgili web'de araştırma yaptım fakat master veritabanını rebuild etmek dışında pek işe yarar ve dişe dokunur bir bilgiye rastlamadım ve bu bahsedilen işlem benim en son uygulayacağım yöntemlerimin arasındaydı(Her yöntem yerinde ve zamanında uygulanmalı). Geri dönüş için senaryomun ilk adımında sanal sunucunun snapshot'ı bulunuyordu. İkinci sırada ise tüm veritabanların full backup'larını bulunduruyordum(Tüm sistem veritabanları, resource veritabanı da dahil).

Sunucu sadece mesai saatlerinde kullanıldığı için zamanım genişti. SP2 kurulumunun hatalı da olsa bitmesini beklemek istedim. Normalde ortalama 5 dakikada yaptığım kurulum için tam tamına 1 saat 15 dakika bekledim fakat kurulum takıldığı noktadan bir adım bile ilerlemedi. SP2 kurulumunu Task Manager üzerinden hiç istemesem de manuel olarak sonlandırmak zorunda kaldım. SQL Server'a ağlanmaya çalışıldığında "script update oluyor" hatasını verip yeni bağlantı kabul etmiyordu. SP2 yeniden başlattığımda ise SP2 zaten yüklenmiş uyarısını veriyordu. Bu tür durumlarda olacak en kötü şey bu tür kararsız bir durumun oluşmasıdır.

Sistemi snapshot'tan geri döndürtüp; hataya neden olabilecek durumları incelemeye başladım. Birkaç durumdan sonra "Database Default Location" da Data ve Log dizinlerinin sistem üzerinde mevcut olmadığını keşfettim. "Database Default Location" ları mevcut olan bir dizin olarak değiştirdim ve SP2 setup'ını tekrardan çalıştırdım. SP2 kurulumu 5 dakika içerisinde başarılı bir şekilde tamamlandı(Bu arada sorun esnasında  Microsoft case'ı açacak mailim hazırdı fakat sorunu kendim çözdüğüm için ihtiyaç kalmadı).

Hem SQL Server 2008'ın "Database Default Location"'ı olmayan bir dizin olarak kabul etmesi hem de  SP2'nin olmayan bir dizinden dolayı bir türlü bitmemesi ayrı ayrı birer bug. Bu bugları en kısa zamanda Microsoft'a feedback olarak bildireceğim.

Bu tür bir sorunla karşılaşmamak için SP2 kurulumunda "Database Default Location" ın geçerli bir adres olup olmadığını SP geçişinin ilk adımına eklemenizi tavsiye ederim.

2011-09-06

Kurumunuzdaki En Büyük Veritabanı Anketi

"Kurumunuzdaki En Büyük Veritabanının Boyutu Kaç GB?" diye sormuştum. Ankete katılanların %27'sinin  kurumlarındaki en büyük veritabanın boyutunun 1 TB - 5 TB arasında olduğunu görüyoruz. Evet, anket sonucundaki 10 TB'dan büyük kurumların oranı da azımsanacak gibi değil.

Kurumların veri boyutları hızlı bir şekilde büyüyor. Bir zamanlar Gigabyte boyutundaki veriler bizim için hayalken şu an bırakın kurumları kişişel olarak Terabyte'lık resim, müzik, video vs dosyalarımız  oluyor. Şu an 1-5 TB boyutunda olan veritabanı büyüklükleri 5 yıl sonra 10-20 TB; 10 yıl sonra ise 50 TB boyutunu geçecektir. Veri boyutundaki bu değişimleri iyi analiz edip ona göre depolama alanları, veritabanı stratejileri, backup alma stratejilerini geliştirmek gerekir.

Düzenlediğim ankete katılan herkese teşekkür ederim. Yeni anketlerde görüşmek dileğiyle...

2011-09-04

Webcast: SQL Server - Performance Tuning

14 Eylül Çarşamba günü 21:00-22:00 saatleri arasında "SQL Server - Performance Tuning" konulu webcast'i sunuyor olacağım. Webcast'e SQL Server'daki Performace Tuning'in Query Tuning tarafına ağırlık verilecektir.

Aşağıdaki bağlantıyı kullanarak vereceğim webcast'e erişebilirsiniz:
https://www.livemeeting.com/cc/mvp/join?id=2W2SHJ&role=attend&pw=2NM%7E%60JK%7Bt

Ajanda aşağıdaki gibi olacak:
  • Performance Tuning için neleri kullanıyoruz?
  • İyi performans için neleri kullanmalıyız?
  • Kötü performans için nelerden kaçınmalıyız?
  • Table Hint kullanımında nelere dikkat etmeliyiz?
  • Temp Table, Table Variable kullanırken nelere dikkat etmeliyiz?
  • Soru-Cevap

2011-08-24

SQL Server 2008 Service Pack 3 CTP Versiyonu Görücüye Çıktı

Microsoft, SQL Server 2008 Service Pack 3'ün CTP versiyonu yayınladı. SP3 CTP; SP2'den sonra çıkan Cumulative Updates 1, 2, 3 ve 4'ü içeriyor.

SQL Server 2008 SP3 CTP versiyonuna http://www.microsoft.com/download/en/details.aspx?id=27150 adresinden ulaşıp indirebilirsiniz. SQL Server 2008 SP3 CTP versiyonu ile düzeltilen hataların listesine http://support.microsoft.com/kb/2546945 adresinden ulaşbilirsiniz.

2011-08-18

Veritabanı Adını Değiştirme - Change Database Name

Bir çok yerde ismi değiştirilecek veritabanı önce single_user mode alınıp ardından isim değişikliği yapacak T-SQL kodlar paylaşılıyor. Evet, ismi değiştirilecek veritabanı adını single_user mode alıp değiştirebilirsiniz hatta SQL Server ile ilgili bir çok kaynakta Master veritabanını seçtirerek single_user moda alma şeklinde yapılmış. Fakat sakın ola master veritabanı seçili iken ismini değiştireceğiniz veritabanını single_user moda almayın; aşağıdaki gibi hata mesajları alırsınız:

Hata Mesajı-1:
“Msg 5064, Level 16, State 1, Line 1
Changes to the state or options of database 'databasename' cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.”

Hata Mesajı-2:
"Msg 1205, Level 13, State 68, Line 1
Transaction (Process ID XXX) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed."

Bu durumda ilgili veritabanına tüm erişimleri kesmeden veritabanı ismini değiştirip multi_user moda alamazsınız. Önce single_user  moda alıp veritabanını ismini değiştirecekseniz ilgili scriptinizi ismini değiştirmek istediğiniz veritabanını seçerek(USE) single_user mode alınız. Bu durumda single_user sizin mevcut bağlantınız olur. Bu tür sorunları ve sistem kesintisine mahal vermemek için aşağıdaki iki scripten dilediğinizi kullanıp uygulayabilirsiniz:

Script-1:

use [master]
go
-- set database to restricted_user mode
alter database [databasename] set restricted_user with rollback immediate

-- rename database name
alter database [databasename] modify name = [databasename_new]

--set database to multi-user mode
alter database [databasename] set multi_user with rollback immediate

Script-2:
use [databasename]
go

-- set database to restricted_user mode
alter database [databasename] set single_user with rollback immediate

-- rename database name
alter database [databasename] modify name = [databasename_new]
--set database to multi-user mode
alter database [databasename] set multi_user with rollback immediate


Not:  İlgili veritabanını kullanmaya çalışan session'ları aşağıdaki kod ile sonlandırabilirsiniz:

declare @tsql varchar(max)=''

select distinct @tsql = @tsql + 'kill ' + cast(request_session_id as varchar(16)) +';
'
from sys.dm_tran_locks
where resource_database_id=db_id('databasename')
group by request_session_id

exec(@tsql)

.::YASAL UYARI::.

©2004-2024 Mehmet GÜZEL, www.mehmetguzel.net

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.