Kh?c ph?c: Ch?c năng fn_get_sql tr? v? SQL văn b?n cho x? l? trong Sysprocesses h? th?ng b?ng

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 325607 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này th?o lu?n v? m?t hotfix ch?c năng cho SQL Server 2000 mà th?c hi?n nh?ng thay đ?i sau:
  • Các hotfix t?o ra m?t m?i fn_get_sql h? th?ng b?ng có giá tr? ch?c năng.
  • Các hotfix thêm ba c?t m?i vào cu?i các b?c th?y...sysprocesses h? th?ng b?ng:
    • sql_handle(nh? phân)
    • stmt_start(int)
    • stmt_end(int)

  • Các hotfix t?o ra m?t m?i water c?, qu?c k? water 2861.

GI?I PHÁP

Đ? gi?i quy?t v?n đ? này, có đư?c gói d?ch v? m?i nh?t cho Microsoft SQL Server 2000. Đ? bi?t thêm thông tin, h?y b?m vào s? bài vi?t sau đ? xem bài vi?t trong Cơ s? Ki?n th?c Microsoft:
290211 Làm th? nào đ? có đư?c SQL Server 2000 service pack m?i nh?t
Chú ý Hotfix sau đây đư?c t?o ra trư?c khi phát hành c?a Microsoft SQL Server 2000 Service Pack 3.

T?p tin hotfix

Có m?t hotfix cho SQL Server 2000 mà th?c hi?n các fn_get_sql ch?c năng.

Liên h? v?i d?ch v? h? tr? s?n ph?m c?a Microsoft đ? có đư?c s?a ch?a. Phiên b?n ti?ng Anh c?a hotfix này có các thu?c tính t?p (ho?c sau này t?p tin thu?c tính) mà đư?c li?t kê trong b?ng sau. Ngày tháng và th?i gian cho nh?ng t?p tin đư?c li?t kê trong gi? ph?i h?p qu?c t? (UTC). Khi b?n xem chi tieát taäp tin, nó đư?c chuy?n đ?i thành gi? c?c b?. Đ? bi?t s? khác nhau gi?a UTC và local time, s? d?ng các Múi gi? th? công c? ngày và gi? trong Pa-nen đi?u khi?n.
   Date         Time      Version    Size              File name
   -----------------------------------------------------------------

   07/01/2002   4:50 PM   8.00.652   7,285 kilobytes   Sqlservr.exe
				
Chú ý V? các t?p ph? thu?c, g?n đây nh?t hotfix hay tính năng có ch?a các t?p tin c?ng có th? ch?a t?p b? sung.

Quan tr?ngN?u b?n mu?n các ch?c năng c?a s?a ch?a, b?n ph?i áp d?ng m?t xây d?ng Sqlservr.exe ch?m hơn ho?c b?ng v?i 8.00.652, và b?n ph?i ch?y Sp2_qfe_serv_uni.sql t?p tin đư?c bao g?m trong s?a ch?a. Đ? bi?t thêm chi ti?t, xem Readme.txt t?p tin đư?c bao g?m trong các t?p tin s?a ch?a.

T?NH TR?NG

Microsoft đ? xác nh?n r?ng đây là m?t v?n đ? trong các s?n ph?m c?a Microsoft đư?c li?t kê ? đ?u bài vi?t này.V?n đ? này đ? đư?c s?a ch?a đ?u tiên trong Microsoft SQL Server 2000 Service Pack 3.

THÔNG TIN THÊM

Đây là m?t đ?nh ngh?a và cú pháp cho các fn_get_sql h? th?ng b?ng có giá tr? ch?c năng.

fn_get_sql

Tr? v? văn b?n SQL g?i cho x? l? đ? ch? đ?nh.

Cú pháp

fn_get_sql ([@ SqlHandle = ]SqlHandle)

Đ?i s?

[@ SqlHandle = ] SqlHandle

Giá tr? nh? phân x? l?. SqlHandle là Binary(20) v?i m?c đ?nh không có.

B?ng quay tr? l?i

Thu g?n b?ng nàyBung r?ng b?ng này
C?t tênKi?u d? li?uMô tả
dbidsmallintCơ s? d? li?u c?a b?n. NULL trong trư?ng h?p c?a qu?ng cáo-hoc SQL phát bi?u.
objectidintID c?a đ?i tư?ng cơ s? d? li?u. NULL trong trư?ng h?p c?a qu?ng cáo-hoc SQL phát bi?u.
s?smallintS? th? t?c nhóm n?u nhóm l?i. 0 cho các m?c mà không ph?i là th? t?c. NULL trong trư?ng h?p c?a qu?ng cáo-hoc SQL phát bi?u.
m?t m? hóachútCho bi?t n?u các đ?i tư?ng đư?c m? hóa:
0 = Không đư?c m? hóa
1 = Encrypted
Văn b?nvăn b?nSQL văn b?n. NULL trong trư?ng h?p c?a các đ?i tư?ng đư?c m? hóa.

Nh?n xét

Fn_get_sql là m?t b?ng có giá tr? hàm h? th?ng mà tr? v? cho SQL, văn b?n SQLHANDLE đ? ch? ra. B?n có th? có đư?c m?t SQLHANDLE h?p l? t? các sql_handle c?t c?a các sysprocesses h? th?ng b?ng.

N?u b?n vư?t qua m?t x? l? mà không c?n t?n t?i trong b? nh? cache, fn_get_sql s? tr? l?i m?t thi?t l?p k?t qu? có s?n ph?m nào. N?u b?n vư?t qua m?t tác không h?p l?, lô đ?u s? h?y b?, và b?n nh?n đư?c l?i sau thông báo:
Máy ch?: Msg 569, c?p 16, nhà nư?c 1, Th? t?c fn_get_sql, d?ng 12 x? l? thông qua đ? fn_get_sql là không h?p l?.
SQL Server không th? nh? cache m?t s? Transact-SQL phát bi?u, ví d? như s? lư?ng l?n báo cáo ho?t đ?ng và phát bi?u v?i chu?i literals l?n hơn 8 KB. X? l? đ?n nh?ng l?i tuyên b? là không retrievable thông qua các fn_get_sql ch?c năng.

C?t văn b?n đư?c l?c cho các văn b?n có th? ch?a m?t kh?u. Xem xét l?i ch? đ? "H?n ch? Traces" trong SQL Server Books Lưu tr? tr?c tuy?n đ? bi?t chi ti?t v? vi?c b?o m?t liên quan đ?n th? t?c không Giám sát.

Cấp phép

Ch? có thành viên c?a các Ilos vai tr? máy ch? c? đ?nh có th? ch?y các fn_get_sql ch?c năng.

Ví d?

Thông tin quay tr? l?i b?i các fn_get_sql ch?c năng là tương t? như DBCC INPUTBUFFER l?nh. S? d?ng các fn_get_sql ch?c năng trong các t?nh hu?ng nơi DBCC INPUTBUFFER là h?n ch?, ch?ng h?n như:
  • Khi các s? ki?n có hơn 255 k? t?.
  • Khi b?n có đ? tr? v? làm t? hi?n t?i cao nh?t m?c đ? m?t th? t?c đư?c lưu tr?. Ví d?, b?n có hai th? t?c đư?c lưu tr? mà đư?c đ?t tên sp_1sp_2. Nếu sp_1 lưu tr? các cu?c g?i th? t?c các sp_2 th? t?c đư?c lưu tr?, và b?n có đư?c x? l? t? các sysprocesses h? th?ng b?ng trong khi sp_2 đang ch?y, các fn_get_sql ch?c năng s? tr? l?i thông tin v? sp_2. Ngoài ra, các fn_get_sql ch?c năng tr? v? các th? t?c đư?c lưu tr? toàn b? lúc cao nh?t hi?n làm t? c?p.
Cơ s? d? li?u qu?n tr? viên có th? s? d?ng các fn_get_sql ch?c năng đ? giúp ch?n đoán v?n đ? quy tr?nh. Sau khi m?t qu?n tr? viên xác đ?nh m?t v?n đ? máy ch? quá tr?nh ID (SPID), các qu?n tr? viên có th? l?y SQLHANDLE cho r?ng d?ch v? SPID, và sau đó g?i nh?ng fn_get_sql ch?c năng v?i x? l? và s? d?ng các offsets b?t đ?u và k?t thúc đ? xác đ?nh các văn b?n SQL c?a v?n đ? d?ch v? SPID. Ví dụ:
DECLARE @Handle binary(20)
SELECT @Handle = sql_handle FROM sysprocesses WHERE spid = 52
SELECT * FROM ::fn_get_sql(@Handle) 
				
B?n c?ng có th? s? d?ng các fn_get_sql ch?c năng liên t?c giám sát máy ch?. Ví d?, m?t công c? khách hàng đ?nh k? truy SQLHANDLE và b?t đ?u tuyên b? và k?t thúc offsets t? các sysprocesses h? th?ng b?ng. Công c? duy tr? m?t b? nh? cache c?a SQL văn b?n, v?i các SQL x? l? như là quan tr?ng duy nh?t và các k?t qu? c?a các fn_get_sql ch?c năng như giá tr?. Đ?i v?i m?i hàng trong các sysprocesses h? th?ng b?ng rowset, công c? trông lên các văn b?n trong b? nh? cache c?a nó d?a trên SQLHANDLE. N?u văn b?n không ph?i là trong b? nh? cache công c?, công c? sau đó các cu?c g?i các fn_get_sql ch?c năng đ? có đư?c văn b?n và lưu nó vào b? nh? cache c?a nó.

Theo d?i c? 2861

Water c? 2861 ch? th? cho SQL Server đ? gi? s? không k? ho?ch chi phí trong b? nh? cache, SQL Server s? thư?ng không nh? cache (ch?ng h?n như đơn gi?n qu?ng cáo-hoc truy v?n, đ?t câu, cam k?t giao d?ch và nh?ng ngư?i khác).
  • N?u d?u v?t c? 2861 đư?c b?t, các fn_get_sql ch?c năng có th? tr? l?i các văn b?n SQL cho các ho?t đ?ng có 0 chi phí k? ho?ch. N?u d?u v?t c? 2861 b? t?t, các fn_get_sql ch?c năng không th? tr? v? SQL văn b?n cho các ho?t đ?ng v?i zero chi phí k? ho?ch.
  • Theo m?c đ?nh, d?u v?t c? 2861 t?t khi b?n áp d?ng s?a ch?a.

Nh?n xét

S? lư?ng các đ?i tư?ng trong b? nh? cache th? t?c tăng khi d?u v?t c? 2861 đ? đư?c b?t. B?i v? các đ?i tư?ng b? sung quá nh?, b?n s? nh?n th?y m?t gia tăng nh? trong b? nh?, mà đư?c đưa lên b?i b? nh? cache c?a th? t?c.

SQL Server 2000 có m?t thu?t toán hi?u qu? đ? t?m b?t k? hi?n có th?c hi?n k? ho?ch cho b?t k? l?nh SQL đư?c ch? đ?nh. Tuy nhiên, v? c?a các tăng s? lư?ng các đ?i tư?ng đư?c lưu tr? trong b? nh? cache c?a th? t?c, có th? mà có th? là th?i gian cho đ?ng cơ quan h? đ? t?m ki?m cho m?t k? ho?ch hi?n t?i làm suy gi?m và có th? ?nh hư?ng đ?n hi?u su?t c?a h? th?ng c?a b?n.

Thông thư?ng, trên các h? th?ng mà kích thư?c cơ s? d? li?u là l?n hơn nhi?u so v?i b? nh? Kích thư?c, h? th?ng này là dư?i m?t s? áp l?c b? nh? d? ki?n. N?u áp l?c b? nh? như v?y mà b? nh? đư?c yêu c?u cho các đ?i tư?ng khác, các lazywriter quá tr?nh s? deallocate các đ?i tư?ng trong b? nh? cache th? t?c. Đi?u này s? ràng bu?c kích thư?c c?a các th? t?c b? nh? cache và s? gi?m thi?u ti?m năng ?nh hư?ng b?t l?i c?a s? thay đ?i này.

Tuy nhiên, trên các h? th?ng mà kích thư?c b? nh? là l?n hơn các Kích thư?c cơ s? d? li?u, h? th?ng là nói chung không ch?u áp l?c b? nh?. V? v?y, các đ?i tư?ng không đư?c deallocated t? b? nh? cache c?a th? t?c do nhu c?u b? nh?, và kích thư?c b? nh? cache th? t?c có th? phát tri?n đ?n m?t đi?m mà nó s? ?nh hư?ng đ?n hi?u su?t.

N?u b?n lưu ? ?nh hư?ng b?t l?i v? hi?u năng h? th?ng, th?c hi?n theo các bư?c sau:
  1. T?t water c? 2861.
  2. Ch?y l?nh DBCC FREEPROCCACHE t? truy v?n Analyzer. B?n không ph?i kh?i đ?ng l?i máy ch? SQL.

Thu?c tính

ID c?a bài: 325607 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 2000 Standard Edition
T? khóa: 
kbhotfixserver kbqfe kbSQLServ2000sp3fix kbfix kbinfo kbsqlserv2000presp3fix kbmt KB325607 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:325607

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com