Lý do kinh doanh khách quan để ưu tiên SQL Server 2012 hơn 2008 R2 là gì?


50

Công ty của tôi đang phải đối mặt với quyết định nên mua SQL Server 2012 Denali hay SQL Server 2008 R2 cho một máy chủ cơ sở dữ liệu mới. Tôi đang tìm kiếm lý do khách quan để chọn cái này hơn cái kia.

Yêu cầu của chúng tôi:

  • Phiên bản tiêu chuẩn (vì lý do tài chính và thiếu nhu cầu về tính năng doanh nghiệp)
  • Khối lượng công việc OLTP (điều này có nghĩa là chúng tôi không cần các chức năng cửa sổ mới và các chỉ mục lưu trữ cột)
  • Kích thước cơ sở dữ liệu 10-100 GB
  • Không có tính năng kinh doanh thông minh cần thiết. Chỉ yêu cầu công cụ quan hệ
  • Phản ánh cơ sở dữ liệu đồng bộ

Hiện tại, những lý do sau đây được biết đến với tôi:

Máy chủ SQL 2012 Denali

  • Phiên bản mới nhất có sẵn

Máy chủ SQL 2008 R2

  • Công nghệ đã được chứng minh

Tôi dường như không thể tìm thấy nhiều lý do kỹ thuật để thích cái này hơn cái kia. Về cơ bản, cần phải chọn công nghệ đã được chứng minh đang chạy thành công so với phiên bản mới nhất và tốt nhất hiện có.

Lý do khách quan để đưa ra quyết định là gì?


5
Tôi nghĩ miễn là thay đổi cấp phép theo lõi không làm thay đổi ngân sách của bạn và bạn không phải lo lắng về việc bắt kịp nhà cung cấp chậm, sử dụng SQL Server 2012 là không có trí tuệ. Điều này dựa trên công nghệ đã được chứng minh vì vậy nó không nên được coi là viết lại hoàn toàn và / hoặc một bản V1.
Aaron Bertrand

3
Dựa trên kinh nghiệm của tôi với ba bản phát hành trước đó, tôi sẽ đợi ít nhất một gói dịch vụ. Với năm 2008 tôi đã đợi cho đến R2, và nó vẫn có khiếm khuyết. Ngay từ đầu tôi đã có: năm 2008 R2 tôi có thể bỏ qua một ràng buộc FK đáng tin cậy và chèn các hàng mồ côi, tôi có thể chạy một tập lệnh trong SSMS và một phần của nó thực thi chống lại cơ sở dữ liệu sai.
AK

3
@AaronBertrand Tôi nghĩ rằng sự tương tự của bạn là sai. Nếu bạn thấy một và cùng một người nhắn tin và lái xe nhiều lần, nhiều lần, sẽ hợp lý khi kết luận rằng người đó trong một tài xế tồi. Đây là cách OP khái quát hóa, không như bạn đề xuất.
AK

3
Alex, cho tôi biết khi bất kỳ nền tảng RDBMS phức tạp nào xuất hiện mà không có bất kỳ lỗi nào. IIRC repro FK của bạn khá phức tạp và không phải là một kịch bản phổ biến. Ngoài ra, hãy cho tôi biết nếu bạn nghĩ rằng các công ty phần mềm có thể trở nên tốt hơn theo thời gian hoặc nếu bạn mong đợi một lỗ hổng kiểu slammer trong SQL 2012, thì trong phiên bản sau đó và phiên bản sau đó ... phải từ bỏ những câu chuyện của những người vợ cũ này và tự mình làm một nền tảng và không phán xét nó bởi một số lỗi trong phiên bản trước ...
Aaron Bertrand

7
"Chờ gói dịch vụ" là một huyền thoại cũ và FUD
gbn

Câu trả lời:


63

Mọi người đều hào hứng với Luôn luôn và Cột, nhưng nhiều lợi ích của SQL Server 2012 không dành riêng cho các phiên bản cao cấp. Tôi không muốn nghe như một phát ngôn viên, nhưng tôi đã có rất nhiều bài thuyết trình về SQL Server 2012 và tôi nghĩ rằng nó có rất nhiều điều để cung cấp ở bất kỳ phiên bản nào phù hợp với bạn.

  • Cơ sở dữ liệu chứa một phần cho phép bạn di chuyển cơ sở dữ liệu giữa các máy chủ hoặc môi trường với một ít xiềng xích (cụ thể là đăng nhập cấp máy chủ và phụ thuộc đối chiếu máy chủ - các phiên bản trong tương lai sẽ xử lý các mục khó khăn hơn như máy chủ được liên kết và công việc Đại lý).

  • Management Studio bây giờ là một công cụ tốt hơn nhiều, phù hợp với Visual Studio. IntelliSense tốt hơn và một loạt các tính năng khác giúp chỉnh sửa dễ dàng hơn. Bây giờ tất nhiên bạn có thể có 2008 R2 trên máy chủ của mình và sử dụng phiên bản SSMS 2012, nhưng tôi không chắc cách thức hoạt động của cấp phép và một số cửa hàng không muốn có các phiên bản hỗn hợp (tôi thích có các công cụ gần đây nhất trên máy trạm của tôi thậm chí để quản lý máy chủ downlevel). Tôi đã viết blog về những thay đổi từ rất sớm, khi vẫn còn lỗi, vì vậy xin vui lòng bỏ qua các tiêu cực vì hầu hết hoặc tất cả đều được sửa chữa như của RTM. Bây giờ tôi rùng mình khi phải sử dụng phiên bản SSMS trước đó.

  • Cải tiến siêu dữ liệu cho phép bạn kiểm tra kết quả của các đối tượng và truy vấn đặc biệt và cũng cho phép bạn định hình tốt hơn đầu ra của các truy vấn.

  • Vai trò máy chủ tùy chỉnh cho phép bạn xác định một nhóm quyền chi tiết hơn cho người dùng ở cấp độ vai trò thay vì cấp / thu hồi từng cái một, hoặc chỉ đưa ra mức độ phức tạp và cung cấp cho họ sysadmin.

  • FileTable cho phép bạn quản lý một thư mục như một bảng tài liệu, nhưng vẫn có quyền kiểm soát bên ngoài đối với nội dung (vì vậy hãy tưởng tượng bạn có thể làm điều này với T-SQL và tưởng tượng mức độ khó của nó trong cmd hoặc PowerShell UPDATE C:\Docs\*.* SET ReadOnly = 1 WHERE Author = 'Bob' AND Created < '20100101';:) .. nghĩ rằng FileStream đáp ứng WinFS và có thể sử dụng để khởi động.

  • Các cải tiến T-SQL cho phép bạn thực hiện nhiều điều gây đau khổ trong các phiên bản trước:

    • THROW (nghĩ về nó như nâng cao lại)
    • OFFSET/FETCH (đơn giản hơn, phân trang theo tiêu chuẩn ANSI)
    • SEQUENCE (cơ chế IDENTITY tập trung, như trong Oracle)
    • Cải tiến cửa sổ / khung (nhiều thứ khác nhau ở đây, chẳng hạn như hiệu suất tổng chạy tuyệt vời)
    • IIF()/ CHOOSE()/ CONCAT()/EOMONTH()
    • Công cụ xây dựng ngày / giờ (ví dụ DATETIMEFROMPARTS) tương tự như DateSerialtrong VB
    • PARSE()/ FORMAT()- giống như các đối tác .NET của họ
    • TRY_CONVERT()/ TRY_PARSE()- trả lại NULLnếu CONVERT/ PARSEthất bại
  • Sự kiện mở rộng có giao diện người dùng nâng cao để định cấu hình / xem và cuối cùng hoàn toàn bao gồm chức năng theo dõi / kiểm toán (bao gồm cả theo dõi quan hệ nhân quả tốt hơn nhiều).

  • Rất nhiều DMVs mới , thủ tục hệ thống và cải tiến SHOWPLAN cho chẩn đoán và xử lý sự cố hiệu suất. Ngoài ra, hãy xem CSS đang gọi " Trình ghi hộp đen ".

  • Server Core cho phép bạn chạy trên một máy chủ tối thiểu mà không cần tất cả các thành phần UI (diện tích bề mặt nhỏ hơn có nghĩa là nó an toàn hơn và giảm bảo trì do ít bộ phận hệ điều hành phải tuân theo Windows Update).

  • Tìm kiếm toàn văn bản nhận được một số cải tiến hiệu suất cơ bản quan trọng, cũng như tìm kiếm ngữ nghĩa (nghĩ từ khóa) và khoảng cách tùy chỉnh / NEAR.

  • AWE không còn được hỗ trợ , có nghĩa là phiên bản SQL Server của bạn trên x86 với 32GB RAM sẽ chỉ có thể sử dụng 4GB - vì vậy cuối cùng bạn sẽ có động lực để thoát khỏi phần cứng 32 bit cũ của mình.


Re: bình luận về quyền hạn, nó vẫn khá đơn giản: gci c:\users | where-object {$_.Author = 'Bob' -and $_.creationdate -lt '1/1/2010'} | %{$_.Readonly = 1}hoặc một cái gì đó tương tự - nhưng không đơn giản và dễ đọc như tùy chọn 2012!
JNK

3
Điều tuyệt vời về PS là bạn có thể làm bất cứ điều gì (gần như) trong một dòng. Điều tệ là thật khó để đọc dòng đó :)
JNK

1
SSMS 2012 tốt hơn nhiều không ??
Thomas Stringer

5
Vâng, tôi thích nó. Tôi nên làm một bài blog khác về nó. Một vài điểm nổi bật: đoạn trích rất tuyệt vời, IntelliSense tốt hơn nhiều, chỉnh sửa vùng rất mạnh mẽ, dải tab rất tốt cho nhiều màn hình và có zoom được tích hợp sẵn.
Aaron Bertrand

3
Tôi cũng có thể tóm tắt viên đạn đó là: "x86 sẽ còn hút hơn cả nó đã làm."
Aaron Bertrand

14

Sau đây chỉ là một vài ví dụ liên quan đến "bằng chứng thực tế cho hoặc chống lại độ tin cậy trong phiên bản đầu tiên của bất kỳ bản phát hành mới nào", theo yêu cầu. Đây không phải là một phân tích đầy đủ, mà là một gợi ý về những gì bạn có thể muốn nghiên cứu.

Bạn có thể google lên "Danh sách các sự cố được khắc phục bởi SQL Server 2008 Gói dịch vụ 1" và "Danh sách các sự cố được khắc phục bởi SQL Server 2008 Gói dịch vụ 3" trên trang web MSDN. So sánh số lượng và mức độ nghiêm trọng của các vấn đề trong cả hai danh sách. IMO danh sách đầu tiên dài hơn và nó có nhiều mặt hàng có thể làm hỏng ngày của tôi, chẳng hạn như:

  • Thông báo lỗi khi bạn kết nối với phiên bản SQL Server được đặt tên trên máy khách đang chạy Windows Vista hoặc Windows Server 2008
  • Tác nhân Log Reader bỏ qua một số giao dịch khi Tác nhân Log Reader chạy để sao chép các giao dịch
  • Thông báo lỗi khi bạn chạy truy vấn có hoạt động nối ngoài trong SQL Server 2008
  • Thông báo lỗi khi bạn thực hiện cập nhật hoặc thao tác xóa trên bảng không có chỉ mục cụm được tạo trong SQL Server 2008
  • Một truy vấn sử dụng các tham số và tùy chọn RECOMPILE trả về kết quả không chính xác khi bạn chạy truy vấn theo nhiều kết nối đồng thời trong SQL Server 2008

Chúng ta hãy đi sâu vào một cấp độ nữa và chỉ xem xét một lệnh, MERGE. Nó được phát hành như một phần của SQL 2008 với một số vấn đề, được mô tả trong các liên kết sau:

Như vậy, tại thời điểm phát hành SQL 2008 ban đầu, tôi đã quyết định không sử dụng MERGE. Bây giờ tôi đang sử dụng MERGE rất nhiều, vào năm 2008 R2 và tôi nghĩ đó là một tính năng thực sự tuyệt vời.

Chỉnh sửa: đây là danh sách các lỗi trong SQL 2012 gần đây đã được sửa . Hy vọng nó giúp.

Một chỉnh sửa khác: Tôi đã chọn MERGE để phân tích chi tiết hơn, bởi vì đó là một cải tiến rất quan trọng. Trên thực tế, đây là một bước quan trọng để bắt kịp với Oracle và nó giúp cải thiện năng suất của chúng tôi. Như vậy, MERGE đã được bán trên thị trường rất nhiều tại thời điểm phát hành SQL 2008. Tuy nhiên, nó không hoàn toàn sẵn sàng để sử dụng trong các hệ thống sản xuất nghiêm túc khi nó được phát hành lần đầu, và không có cách nào dễ dàng để biết nó từ các bài thuyết trình / bài viết / bài đăng trên blog và như vậy.

Tương tự, cách ly ảnh chụp nhanh là một tính năng mới tuyệt vời chỉ hoạt động, nhưng việc gọi các UDF vô hướng trong các ràng buộc CHECK không hoạt động trong mọi trường hợp và vì vậy không nên sử dụng trong sản xuất khi chúng ta cần toàn vẹn dữ liệu. Tuy nhiên, cả hai tính năng mới đều được đề xuất trong các bản trình bày "Có gì mới trong SQL xxxx", cũng như trong sách, bài viết, v.v. và với sự nhiệt tình tương tự.

Chúng ta cần phải rất cẩn thận với các tính năng mới - không phải tất cả chúng sẽ hữu ích / đáng tin cậy / hiệu suất.


Tôi thấy danh sách. Không thực sự coi bất kỳ ai là người dừng show, và hầu như tất cả các vấn đề được đề cập đều ảnh hưởng đến cả 2008 R2 và 2012.
Aaron Bertrand

1
Đây là một lỗi tiềm năngMERGE khác gây ra bế tắc.
Nick Chammas

@NickChammas có, đúng, cảm ơn vì đã đề cập đến điều này. Chúng tôi đang sử dụng sp_getapplock để đi lại.
AK

10

Một điểm chưa được đề cập ở đây là hoàn toàn không liên quan đến bộ tính năng. Nếu bạn đang thực hiện một bản dựng mới, bạn có thể ngừng nâng cấp cơ sở dữ liệu lâu hơn một chút, vì vậy điều này sẽ tiết kiệm chi phí di chuyển.

Đối với một dự án trường xanh, bạn có một số không gian thở để khắc phục lỗi và nuôi chúng với nhà cung cấp nếu chúng bật lên, vì vậy đó không phải là một quá trình hoàn toàn không được kiểm soát. Tôi đã tham gia vào một trong những dự án kho dữ liệu đầu tiên trên SQL Server 2005 khi nó đến RTM và chúng tôi đã thoát khỏi nó.

Nếu bộ tính năng của 2008R2 sẽ làm những gì bạn muốn thì quyết định sẽ giảm một số rủi ro về lỗi / giải pháp so với giá trị hoãn lại sự cần thiết phải nâng cấp và lưu chu kỳ nâng cấp.


6

Khi bạn mua mới, sự lựa chọn khác xa so với khi bạn đang xem xét nâng cấp. Mua mới, tôi tin rằng bạn nên luôn luôn mua phiên bản mới nhất bạn có thể nhận được. Phiên bản 2008 sẽ không còn được hỗ trợ sớm hơn phiên bản 2012. Tốt hơn là bắt đầu mới với lần cuối cùng vì bạn sẽ sử dụng phụ trợ này trong một thời gian dài.

Đối với nhu cầu gói dịch vụ đầu tiên, nó sẽ được đưa ra trước khi bạn biết và vì bạn đang thực hiện phát triển mới, các vấn đề mà nó khắc phục có thể sẽ không ảnh hưởng đến bạn nhiều cơ sở dữ liệu kế thừa với hàng triệu hồ sơ sẽ phải đối mặt.

Bây giờ nếu bạn chỉ nhận được một máy chủ mới nhưng đặt một cơ sở dữ liệu cũ trên đó, thì câu hỏi trở thành bạn đang nâng cấp từ đâu? Nếu cơ sở dữ liệu đã là cơ sở dữ liệu năm 2008, việc sử dụng cùng một phiên bản sẽ ít rủi ro hơn đáng kể. Nếu bạn đang nâng cấp, hãy kiểm tra xem bạn có thể nâng cấp trực tiếp lên 2012 từ phiên bản của mình không.


Không có nâng cấp. Đây là một ứng dụng mới trên phần cứng mới.
usr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.