2012 ile gelen fonskiyonlardan bir taneside TRY_CONVERT fonksiyonudur. Veri tipleri arasındaki değişimler için kullanılır. Dönüştürülme işlemi başarılı olursa değeri döndürür. Eğer dönüştürme işlemi başarısız olursa NULL değer döndürür.
TRY_CONVERT keywordu Level 110 uyumludur.
SELECT
CASE WHEN TRY_CONVERT(float,'Sedat KARAR') IS NULL
THEN 'Cast Failed'
ELSE 'Cast succeeded'
END AS Result;
SET DATEFORMAT dmy;
SELECT TRY_CONVERT(datetime2,'12/31/2010') AS Result
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(datetime2,'12/31/2010') AS Result;
7 Eylül 2014 Pazar
5 Eylül 2014 Cuma
SQL Server 2012 Yenilikler-IFF ve CHOOSE Mantıksal Fonksiyonları
SQL Server 2012 ile beraber gelen IFF ve CHOOSE fonksiyonları ile yazılarıma devam etmek istiyorum.
IFF Fonksiyonu
IFF ifadesi Oracle PL-SQL'de bulunan DECODE fonksiyonuna benzer ancak onun kadar yetenekli değildir. Boolean bir koşulun sonucuna göre iki durumdan birini geriye değer döndürür. Koşul sağlanıyorsa birinci değer sağlanmıyorsa ikinci değer geriye döndürülür.
DECLARE @a int=45;
DECLARE @b int=40;
SELECT IFF (@a>@b,'TRUE','FALSE') AS Result;
CHOOSE Fonksiyonu
Choose Fonksiyonu iki veya daha fazla değerin içinden belirtilen sıradaki değeri döndürür.
SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;
IFF Fonksiyonu
IFF ifadesi Oracle PL-SQL'de bulunan DECODE fonksiyonuna benzer ancak onun kadar yetenekli değildir. Boolean bir koşulun sonucuna göre iki durumdan birini geriye değer döndürür. Koşul sağlanıyorsa birinci değer sağlanmıyorsa ikinci değer geriye döndürülür.
DECLARE @a int=45;
DECLARE @b int=40;
SELECT IFF (@a>@b,'TRUE','FALSE') AS Result;
CHOOSE Fonksiyonu
Choose Fonksiyonu iki veya daha fazla değerin içinden belirtilen sıradaki değeri döndürür.
SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;
SQL Server 2012 Yenilikler-Format Fonksiyonu
SQL Server 2012 ile gelen fonksiyonlardan biriside format fonksiyonudur. .NET ortamında geçerli olan bütün string formatlama işlemlerinin SQL Serverda geliştirilmesini sağlar. CAST ve CONVERT fonksiyonlarının yerini almıştır. Parasal işlemler, Sayılar ve özellikler tarih formatlarında hayatımızı çok kolaylaştırmaktadır.
FORMAT ( value , format [,culture] )
A.Basit Format Örneği
DECLARE @d DATETIME='01/01/2011';
SELECT FORMAT (@d,'d','en-US') AS Result;
B.Özel String biçimlendirmede FORMAT Örneği
DECLARE @d DATETIME = GETDATE();
SELECT FORMAT(@d,'dd/MM/yyyy','en-US') AS Result;
FORMAT ( value , format [,culture] )
A.Basit Format Örneği
DECLARE @d DATETIME='01/01/2011';
SELECT FORMAT (@d,'d','en-US') AS Result;
B.Özel String biçimlendirmede FORMAT Örneği
DECLARE @d DATETIME = GETDATE();
SELECT FORMAT(@d,'dd/MM/yyyy','en-US') AS Result;
4 Eylül 2014 Perşembe
Concat Fonksiyonu
Bugün sizlere SQL Server 2012 ile gelen bir fonksiyon olan Concat fonksiyonundan bahsetmek istiyorum.
Concat fonksiyonu 2 veya daha fazla değeri tek bir string ifadede birleştirmek için kullanılır. + operatörüne göre bazı avantajları vardır. NULL değerin hiç bir etkisi yoktur ve boş değer olarak ifadeye eklenir. Tür dönüşümüne ihtiyaç duymaz.
--B. Null Değerde Concat Kullanımı
CREATE TABLE #temp (
emp_name nvarchar(200) NOT NULL,
emp_middlename nvarchar(200) NULL,
emp_lastname nvarchar(200) NOT NULL);
INSERT INTO #temp VALUES ('Name',NULL,'LastName');
SELECT CONCAT(emp_name,emp_middlename, emp_lastname) AS Result
FROM #temp
Concat fonksiyonu 2 veya daha fazla değeri tek bir string ifadede birleştirmek için kullanılır. + operatörüne göre bazı avantajları vardır. NULL değerin hiç bir etkisi yoktur ve boş değer olarak ifadeye eklenir. Tür dönüşümüne ihtiyaç duymaz.
--A. Basit Olarak Concat Kullanımı
SELECT CONCAT('Happy','Birthday',11,'/','25') As Result
--B. Null Değerde Concat Kullanımı
CREATE TABLE #temp (
emp_name nvarchar(200) NOT NULL,
emp_middlename nvarchar(200) NULL,
emp_lastname nvarchar(200) NOT NULL);
INSERT INTO #temp VALUES ('Name',NULL,'LastName');
SELECT CONCAT(emp_name,emp_middlename, emp_lastname) AS Result
FROM #temp
Vaka Analizi-Sql Server Performans Problemi
Bu yazımda sizlere destek verdiğim firmalardan birinde karşıma çıkan SQL Server'da her zaman için karşılaşabileceğiniz ve çözümü çok basit olan problemlerden birini anlatmak istiyorum.
Geçen hafta destek için gittiğim firmanın birinden beni aradılar. Sistemlerinin çok yavaş olduğunu gelip analiz etmem gerektiği söylendi. Öncelikle firmanın yapısından bahsedecek olursak firma sunucu üzerinde sanallaştırma yapısı olarak HYPER-V kullanıyor. 2 TB lık bir storageları var diskler Raid10 olarak yapılandırılmış. Sanal makinalardan bir taneside SQL Server'ın olduğu makina. SQL Server 2008 R2 standart kurulu durumda. SQL Serverı ERP sistemleri ve Mobile Satış Sistemleri için kullanıyorlar.
Firmanın bana bildirdiği hata son bir haftadır çok yavaş çalıştıklarını özellikle kayıt yaparken çok yavaş kaydettiği sistemlerinin artık kaldırmadığı ve yeni bir server ile storage almayı planladıklarını söylediler.
Sistem kaynaklarına ve bilgisayarların durumlarını incelediğimde çok olağan üstü bir performans beklemediğimin farkındaydım ancak durma seviyesinde bir yavaşlama yoktu. Yanlız kullandıkları ERP programında kayıt işlerken söyledikleri gibi çok yavaş kayıt yapıyordu.
Ben problemin Mobile Satış sisteminden ERP sistemine veri aktarımından kaynaklandığını düşündüm ancak aksi gibi veri aktarımı esnasında kaydetme problemi yoktu. Aksine bu insert işlemi esnasında sistem süper çalışıyordu.
Yaptığım daha derinden :) incelemelerde problemin SQL Serverda olduğunun tespit ettim. SQL Serverda farklı firmalara ait 20 ila 40 GB arasında farklı firmalarına ait databaseler vardır. SQL Server'daki problem yeni açmış oldukları firmanın kullanmış olduğu databaseydi. Aklıma Turgay SAHTIYAN hocanın makalesi geldi. Veritabanı Otomatik Büyümeleri Kontrolünüz Altında Olsun (Database Auto Growth) makalesi tam bu problemi ifade ediyordu. Database boyutu 21 GB olmuş ve Autogrowth özelliği aktif olduğu için 1 MB büyüyordu. Bu özellik aktif olduğu için hata vermiyordu ancak performans olumsuz etkilenmişti.
SQL Serverda bulunan Auto Growth özelliği aktifse bu özellik sayesinde veritabanı dosyaları dolduğunda sistem tarafından oransal veya boyutsal olarak bizim belirlediğimiz şekilde büyüyebilir. Autogrowth işlemi diskte yeni bir alan ayırdığı için kaynak tüketimi fazla olan bir işlemdir. Büyümenin boyutlarına göre bu işlem 1-5 saniye sürebilir. Büyüme tamamlanana kadar ilgili dosyaya gelen okuma ve yazma istekleri bekletildiği için performans sıkıntısı doğacaktır.
Best practice olarak dosyaların büyümesinin Auto Growth değilde DBAlerin kontrolü altında yapılması önerilir ancak plansız büyümelere karşı yinede Auto Growth özelliği aktif olmalıdır. Ayrıntıları Turgay Hocanın makalede okuyabilirsiniz.
Bu konuda bende 20 GB olan MDF dosyasını 30 GB ve 50 GB olan log dosyasını ise 80 GB çıkardım. Sistemi tekrar incelediğimde problem ortadan kalkmıştı. Ancak yinede hazır el atmışken sistemleri yenileme kararıda aldık.
Geçen hafta destek için gittiğim firmanın birinden beni aradılar. Sistemlerinin çok yavaş olduğunu gelip analiz etmem gerektiği söylendi. Öncelikle firmanın yapısından bahsedecek olursak firma sunucu üzerinde sanallaştırma yapısı olarak HYPER-V kullanıyor. 2 TB lık bir storageları var diskler Raid10 olarak yapılandırılmış. Sanal makinalardan bir taneside SQL Server'ın olduğu makina. SQL Server 2008 R2 standart kurulu durumda. SQL Serverı ERP sistemleri ve Mobile Satış Sistemleri için kullanıyorlar.
Firmanın bana bildirdiği hata son bir haftadır çok yavaş çalıştıklarını özellikle kayıt yaparken çok yavaş kaydettiği sistemlerinin artık kaldırmadığı ve yeni bir server ile storage almayı planladıklarını söylediler.
Sistem kaynaklarına ve bilgisayarların durumlarını incelediğimde çok olağan üstü bir performans beklemediğimin farkındaydım ancak durma seviyesinde bir yavaşlama yoktu. Yanlız kullandıkları ERP programında kayıt işlerken söyledikleri gibi çok yavaş kayıt yapıyordu.
Ben problemin Mobile Satış sisteminden ERP sistemine veri aktarımından kaynaklandığını düşündüm ancak aksi gibi veri aktarımı esnasında kaydetme problemi yoktu. Aksine bu insert işlemi esnasında sistem süper çalışıyordu.
Yaptığım daha derinden :) incelemelerde problemin SQL Serverda olduğunun tespit ettim. SQL Serverda farklı firmalara ait 20 ila 40 GB arasında farklı firmalarına ait databaseler vardır. SQL Server'daki problem yeni açmış oldukları firmanın kullanmış olduğu databaseydi. Aklıma Turgay SAHTIYAN hocanın makalesi geldi. Veritabanı Otomatik Büyümeleri Kontrolünüz Altında Olsun (Database Auto Growth) makalesi tam bu problemi ifade ediyordu. Database boyutu 21 GB olmuş ve Autogrowth özelliği aktif olduğu için 1 MB büyüyordu. Bu özellik aktif olduğu için hata vermiyordu ancak performans olumsuz etkilenmişti.
SQL Serverda bulunan Auto Growth özelliği aktifse bu özellik sayesinde veritabanı dosyaları dolduğunda sistem tarafından oransal veya boyutsal olarak bizim belirlediğimiz şekilde büyüyebilir. Autogrowth işlemi diskte yeni bir alan ayırdığı için kaynak tüketimi fazla olan bir işlemdir. Büyümenin boyutlarına göre bu işlem 1-5 saniye sürebilir. Büyüme tamamlanana kadar ilgili dosyaya gelen okuma ve yazma istekleri bekletildiği için performans sıkıntısı doğacaktır.
Best practice olarak dosyaların büyümesinin Auto Growth değilde DBAlerin kontrolü altında yapılması önerilir ancak plansız büyümelere karşı yinede Auto Growth özelliği aktif olmalıdır. Ayrıntıları Turgay Hocanın makalede okuyabilirsiniz.
Bu konuda bende 20 GB olan MDF dosyasını 30 GB ve 50 GB olan log dosyasını ise 80 GB çıkardım. Sistemi tekrar incelediğimde problem ortadan kalkmıştı. Ancak yinede hazır el atmışken sistemleri yenileme kararıda aldık.
24 Temmuz 2014 Perşembe
Intersect ve Expect Kullanımı(T-SQL)
Intersect gönderilen sorguda dönen sonuç kümesinin kesişimini getirir.
Expect ise birinci sorgu sonucundan dönen sonuç kümesinde olup ikinci sorgu sonucunda dönen sonuç kümesinde olmayan kayıtları getirir.
Expect ise birinci sorgu sonucundan dönen sonuç kümesinde olup ikinci sorgu sonucunda dönen sonuç kümesinde olmayan kayıtları getirir.
23 Temmuz 2014 Çarşamba
PIVOT (Transact-SQL) Kullanımı
Pivot table
satırlarda bulunan unique değerleri sütunlarda göstermemizi sağlayan bir
sorgulama türüdür.
Yani bir sütunda bulunan değerleri sütunlarda
çoklu olarak göstererek satırlarda bu değerlerin istediğimiz şekilde
toplamlarını almamızı sağlar.
Pivot table
uygulaması için databaseimizin 2005 versiyonu veya sonrası olması gerekir. Veya veritabanımızın uyumluluk değeri 90 veya
üzeri olmalıdır.
Pivot table daha çok raporlama ve analiz işlemleri için kullanılır. Aşağıdaki örnekte gruplandırma yapılarak toplam alınmış sorguyu diğerinde ise aynı sorgunun pivot table şeklinde göstermini görebilirsiniz. Örneği uygulayabilmek için AdventureWorks sample databaseysini indirip attach etmemiz gerekmektedir.
Bu kod satır bazında
gruplandırma yapmaktadır.
Bu kod ise aynı
sorgunun pivot table şekline çevrilmiş durumudur.
22 Temmuz 2014 Salı
SQL Server Recovery Modelleri
Recovery Model SQL
Servera ait bir veritabanı özelliği Transaction Logların nasıl tutulduğuna
karar vermemizi sağlar.
SQL Serverda 3 çeşit
recovery model vardır.
1.Full Recovery
Model
2.Simple Recovery
Model
3.Bulk Logged
Recovery Model
Full Recovery Model
Bu modelde Sql
Serverda yapılan tüm işlemler transaction log dosyasına kaydedilir ve bizim
tarafımızdan silinme işlemi gerçekleşmedikçe silinmezler. Her işlem transaction
loglara yazıldığı için en güvenilir recovery modeldir. Ancak ilerleyen
zamanlarda transaction loglar büyüyeceği için belirli periyodlarda
silinmelidir. İki farklı yöntemle silebiliriz. Birinci yöntem backup almak
ikinci yöntem ise transaction logların shrink edilmesidir.
SIMPLE Recovery Model
Simple Recovery modeldeki veritabanlarında
tutulan transaction loglar Checkpoint işleminden sonra silinirler. Bu nedenle
Simple Recovery modelde transaction logların sürekli
büyümesi söz konusu değildir. Simple Recovery modelde log
yönetimi kolay olmasına rağmen Simple Recovery modelin dezavantajı ise geriye
dönük transaction loglar silindiği için transaction logların yedeklenmesi ve
dolayısıyla restore işlemleri mümkün değildir. Bu nedenle veri kaybı olaslığı
çok büyüktür.
Bulk Logged Recovery Model
Bulk
Logged Recovery Modelde Full Recovery modelden farklı olarak bulk işlmeler
dışında tüm işlemler loglanırken herhangibir bulk işlem
yapıldığında tüm işlem için tek bir kayıt log dosyasına yazılır. Bu gibi
durumlarda veritabanımızı herhangibir zamana restore etmek mümkün olmaz. Bulk Logged Recovery Modelde bulk işlemler
tek tek transaction log dosyasına yazılmadığı için Full Recovery modele göre
bulk işlemler daha hızlı yapılır.
Veritabanının Recovery Modelinin
Değiştirilmesi
Veritabanımızın
recovery modelini değiştirmek için Management Studio kullanabileceğimiz gibi
TSQL komutları ilede değiştirebiliriz.
ALTER DATABASE
AdventureWorks SET RECOVERY SIMPLE
ALTER DATABASE
AdventureWorks SET RECOVERY FULL
ALTER DATABASE
AdventureWorks SET RECOVERY BULK_LOGGED
21 Temmuz 2014 Pazartesi
HAVING (Transact-SQL) Kullanımı
Bir sorguda gruplandırma yapıyorsak ve bu sorguda grup için koşul kullanmak istiyorsak where kullanamayız. Bunun için HAVING sözcüğünü kullanmamız gerekir. Ancak WHERE sözcüğünü gruplama fonsiyonundan önce kullanabiliriz. WHERE bir tablonun tek satırları üzerinde işlem yapan koşullar içinde geçerlidir. HAVING gruplanmış verilerin işlemleri için geçerlidir.
- SELECT komutunda GROUP BY yoksa HAVING kullanmanın bir anlamı yoktur.
- HAVING sözcüğünden sonra mutlaka COUNT ,SUM,MIN,MAX kullanılmalıdır.
- WHERE sözcüğü ile birlikte kullanılabilir.
18 Temmuz 2014 Cuma
SQL Server Error Logları
Sql Serverımızda
sistemin nasıl çalıştığını kontrol ettiğimiz olası hatalarda baktığımız yer Sql
Server Error Loglarıdır.
Sql Server Error
logları için Management Studio kullanılarak Object Explorer altında bulunan Management'in altında Sql
Server Logs içinde bulunan log dosyalarına tıklanarak görüntülenilebilir.
Log dosyalarına
ayrıca Program Files-Microsoft SQL Server-MSSQL.N-MSSQL-Logun altında bulunan
ERRORLOG dosyaları text editor kullanılarakda ulaşılabilir.
SQL Server Database
Engine loglarında bir adet Current ve 6 adet Archive olmak üzere 7 adet log
dosyası bulunmaktadır.
Sql Server her
restart olduğun sıralama bir kayarak devam eder. Yani Current olan ERRORLOG1
ERRORLOG1 olan ERRORLOG2 gibi sıralama 1 artarak yer değiştirir. ERRORLOG6 olan
ise sistemden silinir.
Ancak SQL Server
Servisi uzun süredir çalışıyorsa ve çok fazla hata varsa SQL Server log dosyası
çok fazla şişer. Bu durumda recycle işlemini elimizle tetiklemimiz servisi
yeniden başlatmanın yerine tercih edilir.
Aşağıdaki Storage
Procedur kullanılarak bu işlem kolaylıkla yapılabilir.
EXEC
master.sys.sp_cycle_errorlog;
Eski kayıtlardaki
hatalara bakmak için Sql Server log dosyasının silinmesini istemeyebiliriz.
Bunun için SQL Server Logs üzerinde sağ tuşla tıklayıp Configure seçerek
6 ile 99 arasında bir kayıt verebiliriz. Bu sayede log dosyamızın sayısı artmış
olur.
SQL Server Agent
Error Log’ları
SQL Server Agent
Error Log’ları da Database Engine Error Log’ların da olduğu gibi servis restart
olduğunda recycle olur. Tabi burada bahsettiğimiz servis database engine
servisi değil SQL Server Agent servisidir.
Bir diğer farklılık
ise Database Engine log’ları default olarak 1+6 log file’dan oluşmakta ve bu
rakamda değişiklik yapılabilmekteyken SQL Agent Error Log’ları 1+9 log file’dan
oluşmakta ve bu rakamlarda değişiklik yapılamamaktadır. Aktif olan SQL Agent Error
Log’un dosya adı SQLAGENT.OUT, arşiv olan log file’ların adları ise SQLAGENT.x
şeklindedir.
SQL Server Agent
Error Log Recycle’ı Elle Tetiklemek (master.sys.sp_cycle_agent_errorlog)
17 Temmuz 2014 Perşembe
Sql Server 2012 Maintenance Plans
Sql Server Databaselerimizin stabil çalışması için periyodik olarak
bakım çalışması yapılması ve yedekleme işleminin yapılması gerekir.
Bu işlemler databaselerin periyodik olarak yedeklenmesi, indexlerin rebuild ve reorganize edilmesi, shrink işlemleri ve istatistiklerin update edilmesi işlemler olabileceği gibi kendi hazırladığımız bir jobun belirli periyodlar içerisinde çalışmasını sağlayabiliriz.
Tabi bu işlemleri manuel yapmak mümkün. Her gece saat 02.00'da yedek almak için saat kurulup kalkıp yedekleme işlemi gibi. Ama bu işleri yapmak için joblar devreye giriyor. SQL Server Maintenance Plan ise bize bu işlemleri belli bir plan içinde yapma şansı tanıyor. Aynı zamanda yapılan tanımlamayı tek bir yerden kontrol edebilme, aynı şekilde işlem sonucunuda tek bir yerden raporlama hakkı veriyor.
Maintanence plan’ın çalışması için 2 adet servis’in çalışır durumda olması gerekmektedir.
Bunlar;
• SQL Server
• SQL Sunucu Agent
Kısaca hangi işlemleri yapabildiğimize değinecek olursak(İleriki yazılarda ayrıntılı olarak değinilecektir.)
Update Statistics Task
Execute SQL Server Agent Job Task
Maintenance Cleanup Task
Bu işlemler databaselerin periyodik olarak yedeklenmesi, indexlerin rebuild ve reorganize edilmesi, shrink işlemleri ve istatistiklerin update edilmesi işlemler olabileceği gibi kendi hazırladığımız bir jobun belirli periyodlar içerisinde çalışmasını sağlayabiliriz.
Tabi bu işlemleri manuel yapmak mümkün. Her gece saat 02.00'da yedek almak için saat kurulup kalkıp yedekleme işlemi gibi. Ama bu işleri yapmak için joblar devreye giriyor. SQL Server Maintenance Plan ise bize bu işlemleri belli bir plan içinde yapma şansı tanıyor. Aynı zamanda yapılan tanımlamayı tek bir yerden kontrol edebilme, aynı şekilde işlem sonucunuda tek bir yerden raporlama hakkı veriyor.
Maintanence plan’ın çalışması için 2 adet servis’in çalışır durumda olması gerekmektedir.
Bunlar;
• SQL Server
• SQL Sunucu Agent
Maintenance
Planslara Management Studio kullanarak
Maintenance Plans kullanarak ulaşabiliriz. Kendimiz New Maintenance Plans diyerek plan
tanımlayabileceğimiz gibi Maintenance Plan Wizard kullanarak Maintenance Plan
tanımlayabilmekteyiz.
Tanımladığımız
maintenance planlar için schedule
tanımlayabilir ve bu şekilde bu işlemleri periyodik olarak gerçekleşmesini
sağlayabilirsiniz.Kısaca hangi işlemleri yapabildiğimize değinecek olursak(İleriki yazılarda ayrıntılı olarak değinilecektir.)
Backup Database Task
Bakım planlarına
yedekleme görevi eklemek için kullanılır. Veritabanı herhangi bir donanım
hatası veya kullanıcı hatası nedeniyle zarar görmüş olabilir ve geri dönülmesi
için veritabanının bir kopyası gerekebilir. Bu görev full, differential, files
ve filegroups vetransaction log backups yedekleme işlemi için olanak sağlar.
İstatistik
verilerini update etmek için kullanılır.
Execute SQL Server Agent Job Task
Maintenance Plans
içinden SQL Server Agent Joblarını kullanmak için bu tools kullanılır.
Execute T-SQL Statement Task
Maintenance plan
için T-SQL scriptleri çağırmak için kullanılır.
History Cleanup Task
Geçmişe yönelik
Bakup ve Restore , Sql Server Agent ve Maintenance Planlara ait logları silmek
için kullanılır. Bu datalar MSDB databaseinde tutulur. Bu databasein büyümesi
engellenmiş olur.
Maintenance Cleanup Task
Bakım planları ile
ilgili eski dosyaları ve maintenance plans ve veritabanı yedekleme
dosyaları tarafından oluşturulan logları temizlemek için bu task kullanılır.
Notify Operator Task
Bu task otomatik
uyarılar için kullanılır. Kullanmak için Database Mail özelliği aktif olmalı,
mail host olarak MSDB database düzgün yapılandırılmış olmalı ve Sql Server
Agent Servisinin geçerli bir mail adresi olmaldır.
Rebuild Index Task
Tablolar üzerinde
bulunan indexlerin yeniden oluşturulması için bu task kullanılır. Database ve
object seçimini istediğimiz gibi yapabiliriz.
Bu
ekranda ayrıca “Keep Index online while reindexing” seçeneği bizim için çok
önemli. Bu seçenek vasıtasıyla reindex işlemi yapılırken dahi index e erişimi
kesmemiş oluyoruz.Full scan yapılırken, aynı zamanda istatistiklerde güncellenir.
Reorganize Index Task
Indexleri yeniden
organize etmek için kullanılır.
İstatistikleri güncellemediği için Update Istatistik Task ile birlikte
kullanılır. Bu task Sql Server 2014'de
ALTER INDEX REORGANIZE scriptini kullanmaktadır.
Shrink Database Task
Seçilen database
boyutunu azaltmak için bir task oluşturmak için kullanılır.DBCC SHRINKDATABASE
deyimini çalıştırmak için kullanılır.
Check Database Integrity Task
DBCC
CHECKDB Transact-SQL deyimini çalıştırarak
veritabanında kullanıcı ve sistem tabloları ve indeksler yapısal bütünlüğünü kontrol etmek için bu Task kullanılır.
Kaydol:
Kayıtlar (Atom)
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 "...
-
Bu komut TSQL sorguları tarafından oluşturulan disk ve bellek etkinliği miktarıyla ilgili bilgileri görüntülememizi sağlar. SET STATISTI...
-
CHAR, NCHAR, VARCHAR ve NVARCHAR data tiplerinin hepsi text veya string verilerini saklamak için kullanılır. Ancak aralarında bazı farkl...





























