SQL Server 2012'yi 2008 R2'de Tercih Etmek Amaçlı İş Amaçları Nelerdir?


50

Şirketim yeni bir veritabanı sunucusu için SQL Server 2012 Denali veya SQL Server 2008 R2 satın alıp almama kararıyla karşı karşıya. Birini diğerinden seçmek için nesnel nedenler arıyorum.

Gereksinimlerimiz:

  • Standart sürüm (finansal nedenlerden ve işletme özelliklerine ihtiyaç duyulmaması nedeniyle)
  • OLTP iş yükü (bu, yeni pencereleme işlevlerine ve sütun deposu dizinlerine ihtiyacımız olmadığı anlamına gelir)
  • 10-100 GB veritabanı boyutu
  • İş zekası özelliklerine gerek yok. Sadece ilişkisel motor gereklidir
  • Senkronize Veri Tabanı Yansıtması

Şu anda, aşağıdaki nedenler bana bilinmektedir:

SQL Server 2012 Denali

  • Mevcut en yeni sürüm

SQL Server 2008 R2

  • Kanıtlanmış teknoloji

Birini diğerine tercih etmek için pek çok teknik sebep bulamıyorum. Temel olarak, mevcut en yeni ve en iyi sürümle kıyaslandığında başarılı bir şekilde çalışan kanıtlanmış teknolojiyi seçmeye geliyor.

Karar vermenin nesnel nedenleri nelerdir?


5
Çekirdek başına lisans değişikliği bütçenizi değiştirmediği sürece ve yavaş satıcı yakalama konusunda endişelenmenize gerek olmadığı sürece, SQL Server 2012'yi kullanmak hiç akıllıca değil. Bu kanıtlanmış teknolojiye dayanmaktadır, bu nedenle tam bir yeniden yazma ve / veya V1 olarak değerlendirilmemelidir.
Aaron Bertrand

3
Önceki üç sürümdeki deneyimime dayanarak, en az bir servis paketi beklerdim. 2008 ile R2'ye kadar bekledim ve hala kusurları var. Şunlarımın başından itibaren: 2008 R2’de güvenilir bir FK kısıtlamasını atlayabilir ve artık satırları ekleyebilirim, SSMS’de bir komut dosyası çalıştırabilir ve bir kısmı yanlış veritabanına karşı çalıştırılabilir.
AK

3
@AaronBertrand Bence analojiniz yanlış. Birini ve aynı kişiyi bir kereden fazla, birkaç kez mesaj attığını ve sürdüğünü gördüyseniz, o kişiyi korkunç bir sürücüye götürmek makul olur. OP, sizin önerdiğiniz şekilde değil, genelleştiriyor.
AK

3
Alex, karmaşık bir RDBMS platformu herhangi bir hata olmadan teslim edildiğinde bana haber verin. IIRC, FK repro'nuz oldukça karmaşık ve ortak bir senaryo değildi. Ayrıca, yazılım şirketlerinin zaman içinde daha iyi olamayacağını düşünüyorsanız veya SQL 2012'de, daha sonra sürümde ve bundan sonraki sürümde slammer tipi bir güvenlik açığı beklediğinizi düşünüyorsanız, bu noktada ... bu eski eşlerin masallarından kurtulmak ve kendi başına bir platform almak ve önceki bir versiyonda bazı böceklerle yargılamak zorunda değiller ...
Aaron Bertrand

7
"Servis paketini bekle" eski bir efsane ve FUD
gbn

Yanıtlar:


63

Herkes AlwaysOn ve ColumnStore'dan heyecan duyuyor, ancak SQL Server 2012'nin avantajlarından birçoğu üst düzey baskılara özel değil. Bir sözcü gibi görünmek istemiyorum, ama SQL Server 2012 hakkında birçok sunum yaptım ve bence size uygun olan herhangi bir sürümde sunabileceği çok şey var.

  • Veritabanlarını birkaç daha az zincirle sunucular veya ortamlar arasında taşımanıza izin veren Kısmen İçeren Veritabanları (yani, sunucu düzeyinde girişler ve sunucu harmanlama bağımlılıkları - gelecek sürümler, bağlantılı sunucular ve Ajan işleri gibi diken öğelerini işleyecektir).

  • Management Studio şimdi, Visual Studio ile uyumlu, çok daha iyi bir araçtır. IntelliSense daha iyidir ve bir sürü başka özellik düzenlemeyi kolaylaştırır. Şimdi elbette sunucunuzda 2008 R2’ye sahip olabilir ve SSMS’nin 2012 sürümünü kullanabilirsiniz, ancak bunun lisanslama konusunda nasıl çalıştığından emin değilim ve bazı dükkanlar karışık sürümler istemiyor (en son araçlara sahip olmayı tercih ediyorum). benim iş istasyonum alt seviye sunucuları bile yönetebiliyor). Değişiklikler hakkında, henüz hataların olduğu zamanlar hakkında erken blog yazdım, bu nedenle olumsuzlukları göz ardı edin, çünkü çoğu veya tümü RTM'den beri sabit. SSMS'nin daha eski bir sürümünü kullanmak zorunda kaldığımda şimdi titriyorum.

  • Meta veri geliştirmeleri , nesnelerin ve geçici sorguların sonuç kümelerini denetlemenizi ve ayrıca sorguların çıktısını daha iyi şekillendirmenizi sağlar.

  • Özel Sunucu Rolleri , kullanıcılar için birer birer tek tek vermek / iptal etmek ya da sadece karmaşıklığı sağlamak ve sysadmin vermek yerine, rol düzeyinde çok daha ayrıntılı izinler tanımlamanıza olanak tanır.

  • FileTable , bir belge tablosu gibi bir klasörü yönetmenize izin verir, ancak yine de içeriği üzerinde dış denetime sahip olmanıza izin verir (bu yüzden bunu T-SQL ile yapabileceğinizi ve cmd veya PowerShell'de yapmanın ne kadar zor olacağını hayal edin UPDATE C:\Docs\*.* SET ReadOnly = 1 WHERE Author = 'Bob' AND Created < '20100101';). FileStream, WinFS ile tanışır ve önyükleme yapmak için biraz kullanılabilirlik sağlar.

  • T-SQL Geliştirmeleri , önceki sürümlerde acı çeken birçok şeyi yapmanıza izin verir:

    • THROW (yeniden yükseltme olarak düşünün)
    • OFFSET/FETCH (daha basit, ANSI standardı çağrı)
    • SEQUENCE (Oracle'daki gibi merkezi IDENTITY mekanizması)
    • Pencereleme / Çerçeveleme geliştirmeleri (buradaki harika koşu toplamları performansı gibi çeşitli şeyler)
    • IIF()/ CHOOSE()/ CONCAT()/EOMONTH()
    • Tarih / Saat Kurucuları (örn. DATETIMEFROMPARTS) DateSerialVB’deki gibi
    • PARSE()/ FORMAT()- .NET meslektaşları gibi
    • TRY_CONVERT()/ TRY_PARSE()- dönüş NULLeğer CONVERT/ PARSEbaşarısız
  • Extended Events , yapılandırma / görüntüleme için geliştirilmiş bir UI'ye sahiptir ve sonunda izleme / denetim işlevselliğini (daha iyi nedensellik takibi dahil) tamamen kapsar.

  • Teşhis ve performans sorunlarını gidermek için pek çok yeni DMV , sistem prosedürü ve ShowPlan geliştirmeleri. Ayrıca CSS’nin “ The Black Box Recorder ” dediği şeye bir bakın.

  • Sunucu Çekirdeği , tüm UI bileşenleri olmadan çıplak bir sunucuda çalışmanıza izin verir (daha küçük yüzey alanı, daha güvenli olduğu anlamına gelir ve daha az işletim sistemi parçası Windows Update'e tabi olduğu için daha az bakım gerektirir).

  • Tam Metin Arama , bazı önemli performans iyileştirmelerinin yanı sıra anlamsal arama (anahtar kelimeler düşünün) ve özelleştirilebilir yakınlık / NEAR gibi özelliklere de sahiptir.

  • AWE artık desteklenmiyor , yani 3286 RAM x86'daki SQL Server örneğiniz yalnızca 4GB kullanabiliyor - bu nedenle eski 32-bit donanımınızdan kurtulmak için motivasyonunuz olacak.


Re: powershell yorum, hala oldukça basit: gci c:\users | where-object {$_.Author = 'Bob' -and $_.creationdate -lt '1/1/2010'} | %{$_.Readonly = 1}ya da benzer bir şey - ama 2012 seçeneği kadar basit ve okunabilir değil!
JNK

3
PS ile ilgili en güzel şey, bir çizgide (neredeyse) her şeyi yapabilmenizdir. Kötü olan şey şu satırı okumak zor :)
JNK

1
SSMS 2012 bu kadar iyi mi?
Thomas Stringer

5
Evet bayılırım. Bununla ilgili başka bir blog yazısı yapmalıyım. Birkaç önemli nokta: snippet'ler harika, IntelliSense daha iyi, bölge düzenleme çok güçlü, sekme şeridi çoklu monitör için harika ve yerleşik zoom özelliği var.
Aaron Bertrand

3
Ayrıca bu mermiyi şöyle özetleyebilirim: "x86 zaten olduğundan daha fazla emecek."
Aaron Bertrand

14

Aşağıdaki, talep edildiği gibi, "herhangi bir yeni sürümün ilk sürümünde güvenilirliğe karşı veya güvenilirliğe ilişkin gerçek kanıt" ile ilgili birkaç örnektir. Bu tam bir analiz değil, araştırmak isteyebileceğiniz bir öneridir.

MSDN web sitesinde "SQL Server 2008 Service Pack 1 ile giderilen sorunların listesi" ve "SQL Server 2008 Service Pack 3 ile giderilen sorunların listesini" yazabilirsiniz. Her iki listedeki sorunların sayısını ve ciddiyetini karşılaştırın. IMO ilk liste daha uzundur ve günümü mahvedebilecek daha fazla öğeye sahiptir, örneğin:

  • Windows Vista veya Windows Server 2008 çalıştıran bir istemci bilgisayarda adlandırılmış bir SQL Server örneğine bağlandığınızda hata iletisi
  • Günlük Okuyucu Aracısı, işlemleri çoğaltmak için çalıştığında Günlük Okuyucu Aracısı bazı işlemleri atlıyor
  • SQL Server 2008'de bir dış birleştirme işlemi içeren bir sorgu çalıştırdığınızda hata iletisi
  • SQL Server 2008'de oluşturulan kümelenmiş bir dizini olmayan bir tabloda bir güncelleştirme veya silme işlemi gerçekleştirdiğinizde hata iletisi
  • SQL Server 2008'de aynı anda birden çok bağlantıda sorguyu çalıştırdığınızda parametreleri ve RECOMPILE seçeneğini kullanan bir sorgu, yanlış sonuçlar döndürüyor

Bir seviye daha gözden geçirelim ve bir komut, MERGE düşünelim. Aşağıdaki bağlantılarda açıklanan birkaç sorunla SQL 2008'in bir parçası olarak yayımlandı:

Bu nedenle, SQL 2008'in orijinal sürümü sırasında MERGE kullanmaya karar verdim. MERGE’ı 2008 R2’de çok fazla kullanıyorum ve bunun gerçekten harika bir özellik olduğunu düşünüyorum.

Düzenleme: İşte SQL 2012'de son zamanlarda düzeltilen hataların listesi . Umarım yardımcı olur.

Başka bir düzenleme: MERGE'yi daha ayrıntılı analiz için seçtim, çünkü çok önemli bir gelişme. Aslında, Oracle ile yetişmek için büyük bir adımdır ve verimliliğimizi artırır. Bu nedenle, MERGE, SQL 2008 sürümünde çok pazarlandı. Oysa, ilk kez piyasaya sürüldüğü zaman ciddi üretim sistemlerinde kullanılmaya tamamen hazır değildi ve sunumlardan / makalelerden / blog yazılarından vb. Bilmenin kolay bir yolu yoktu.

Benzer şekilde, anlık görüntü yalıtımı sadece işe yarayan harika bir özelliktir, ancak CHECK kısıtlamalarında skaler UDF'leri çağırmak her durumda işe yaramaz ve veri bütünlüğüne ihtiyaç duyduğumuzda üretimde kullanılmaması gerekir. Ancak, hem yeni özellikler hem de "SQL xxxx'te yenilikler" sunumlarında, kitaplarda, makalelerde vb. Benzer bir coşkuyla önerildi.

Yeni özelliklere çok dikkat etmemiz gerekiyor - hepsi faydalı / güvenilir / performans olmayacak.


Listeyi gördüm. Herhangi bir gösteri durdurucu olarak algılamıyordu ve belirtilen tüm konular 2008 R2 ve 2012 yıllarını etkiliyor.
Aaron Bertrand

1
İşte kilitlenmelere neden olan başka bir potansiyel MERGEhata var.
Nick Chammas

@NickChammas evet, doğru, bunu söylediğiniz için teşekkürler. Etrafta dolaşmak için sp_getapplock kullanıyoruz.
AK,

10

Burada belirtilmemiş olan bir nokta, özellik seti ile tamamen alakasızdır. Yeni bir yapı oluşturuyorsanız, veritabanı yükseltmesini bir süre daha erteleyebilirsiniz, bu da taşıma maliyetlerinden tasarruf etmenizi sağlar.

Bir yeşil alan projesi için, hataların etrafından dolaşmak ve ortaya çıkarlarsa satıcıyla birlikte onları yükseltmek için bir nefes alanınız vardır, bu yüzden tamamen kontrolsüz bir işlem değildir. SQL Server 2005'teki ilk veri ambarı projelerinden birine, RTM'ye gittiği gibi dahil oldum ve ondan kaçtık.

Eğer 2008R2'de belirtilen özellik istediğiniz şeyi yaparsa, karar, yükseltme döngüsünün yükseltilmesi ve kaydedilmesi gerekliliğinin ertelenmesinin değeri gibi bazı hatalar / geçici çözümler riskidir.


6

Yeni bir şey satın alırken seçim, yükseltme yapmayı düşündüğünüzden çok farklı. Yeni satın almak, her zaman alabileceğiniz en yeni sürümü satın almanız gerektiğine olan inancımdır. 2008 sürümü, 2012 sürümünden çok daha önce desteklenmeyecek. Bu arka ucu uzun süre kullanacağınız için en yenisiyle başlamak daha iyidir.

İlk hizmet paketine ihtiyaç duyulduğunda, bunu bilmeden önce ortaya çıkacak ve yeni bir gelişme yaptığınızdan, çözdüğü sorunlar sizi milyonlarca kayda sahip eski bir veritabanının etkileyeceği kadar büyük olasılıkla etkilemeyecektir.

Şimdi yeni bir sunucu alıyorsanız ancak üzerine eski bir veritabanı koyuyorsanız, o zaman soru ne yükseltiyorsunuz? Veritabanı zaten 2008 veritabanıysa, aynı sürümü kullanmanız çok daha az riskli olacaktır. Yükseltme yapıyorsanız, sürümünüzden doğrudan 2012'ye yükseltme yapıp yapamayacağınızı kontrol edin.


Yükseltme yok. Bu yeni donanımda yeni bir uygulama.
usr
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.