Truy vấn / sửa đổi lệnh nhanh


7

Tôi chịu trách nhiệm quản trị một phiên bản SQL Server 200x, điều không may là đóng vai trò phụ trợ cho ứng dụng chìa khóa trao tay được viết với một vấn đề hiệu năng kinh tởm. Nó liên tục sử dụng mô hình chuẩn bị một con trỏ tĩnh mà nó sẽ chỉ sử dụng một vài mục đầu tiên và thường mất hàng chục mili giây. Có hàng ngàn truy vấn này trong một luồng liên tục.

Sự thật của vấn đề là do thiết kế tò mò về tính toàn vẹn dữ liệu của ứng dụng hoàn toàn không phải là vấn đề với bất kỳ truy vấn nào, vì vậy thực tế là chúng tĩnh là khốn khổ vì hiệu suất sẽ nhanh hơn khoảng ba mươi lần nếu chúng năng động.

Sau khi giao dịch với nhà cung cấp trong nhiều tuần, tôi đã không đi đến đâu. Sự thật là tất cả những gì tôi thực sự cần làm là thay đổi một tham số theo cách ứng dụng sử dụng sp_cursorprepexec. Tôi thậm chí có thể làm điều đó một cách toàn cầu trên toàn bộ máy chủ nếu cần thiết.

Tôi đang xem xét bất kỳ và tất cả các giải pháp, cho dù đó là sử dụng một tính năng trong SQL Server 200x mà tôi không thể tìm thấy, viết một ứng dụng nhỏ nằm giữa SQL Server và máy khách và sửa đổi dữ liệu (mặc dù tôi sẽ không mong muốn tìm ra cách xử lý giao thức TDS theo cách như vậy) hoặc bằng cách nào đó đổi tên sp_cursorprepexec và thay thế nó bằng một trình bao bọc.

Giới hạn của bầu trời.

(FYI, chúng tôi đang chạy SQL Server 2005 ngay bây giờ, nhưng nếu có lý do thuyết phục để bỏ ra thêm tiền để nâng cấp giấy phép thì điều đó có thể xảy ra.)

Câu trả lời:


8

Đây không phải là một vấn đề kỹ thuật, nó là một vấn đề quản lý hợp đồng. Đừng frig với ứng dụng chìa khóa trao tay. Nó cung cấp cho nhà cung cấp một thẻ không cần ra tù cho phép họ bỏ qua thỏa thuận cấp độ dịch vụ của họ.

Hoặc,

  1. Vấn đề về phần cứng (SSD, máy chủ lớn hơn, RAM nhiều hơn, v.v.) hoặc

  2. Nói chuyện với bất cứ ai quản lý mối quan hệ với nhà cung cấp của bạn. Đẩy trách nhiệm về hiệu năng hệ thống trở lại với nhà cung cấp và / hoặc

  3. Điều tra trường hợp kinh doanh để chuyển sang sản phẩm của đối thủ cạnh tranh.

Lộn xộn với ứng dụng là điều cuối cùng bạn nên làm, đặc biệt nếu mối quan hệ với nhà cung cấp đang trở nên căng thẳng.

Bạn cần đảm bảo rằng quản lý của bạn biết rằng vấn đề hiệu năng là do kiến ​​trúc của hệ thống. Nhận được điều đó bằng văn bản bằng cách nào đó; viết một báo cáo mô tả vấn đề và lý do bạn không thể đơn phương sửa nó. Hãy chắc chắn rằng nó được gửi qua email cho tất cả các bên liên quan nội bộ của bạn và bạn có một hồ sơ về nó được gửi. Sắp xếp một cuộc họp để theo dõi và giải thích nó. Điều đó bao gồm mông của bạn - điều này khá quan trọng nếu nhà cung cấp (hoặc bên ủy quyền mua hàng) cố gắng để có được chính trị.

Bây giờ, hãy giải quyết vấn đề với chức năng quản lý CNTT của bạn, đảm bảo rằng nó được ghi chép tốt. Khi bạn hiểu nguyên nhân cốt lõi của vấn đề, đây không phải là một vấn đề. Nhà cung cấp đã bán cho bạn một hệ thống không phù hợp với mục đích sử dụng. Bây giờ là một vấn đề quản lý. Bật giấy cảm ứng màu xanh và đứng lại.

Nếu bạn đã làm điều này, thì bạn đã làm mọi thứ bạn có thể làm mà không can thiệp vào chính ứng dụng. Một lần nữa, tôi không thể nói điều này đủ mạnh: không làm gì với ứng dụng có thể làm mất hiệu lực SLA.


Amen đến đó.
Mark Storey-Smith

1
Tôi thực sự không thích câu trả lời này, nhưng đó là câu trả lời đúng. Tôi đến từ một thế giới phát triển phần mềm nơi tôi có thể khắc phục các sự cố với chuyên môn kỹ thuật của riêng mình mà các bên khác từ chối. Bây giờ tôi đang ở trong một thế giới mà tôi không thể, và đó là một trải nghiệm đau đớn ở một số khía cạnh.
Kaganar

@Kaganar - đó là những niềm vui của phần mềm đóng gói. Thật không may, SLA của bạn là đòn bẩy duy nhất bạn có với nhà cung cấp và bạn không thể mở lại bằng cách sử dụng hệ thống. Bạn có cảm tình của tôi, nhưng điều này thực sự nằm ngoài tầm tay của bạn.
Mối quan tâmOfTunbridgeWells
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.