Ngãn x?p tràn x?y ra khi b?n ch?y m?t truy v?n có ch?a m?t s? l?n các ð?i s? bên trong m?t IN ho?c m?t ði?u kho?n không IN trong SQL Server

ID c?a bài: 288095 - Xem s?n ph?m mà bài này áp d?ng vào.
BUG #: 235727 (shiloh_bugs)
BUG #: 58274 (sqlbug_70)
Bung t?t c? | Thu g?n t?t c?

TRI?U CH?NG

Truy v?n có ch?a m?t s? l?n các ð?i s? (hàng ngàn) bên trong m?t IN ho?c m?t ði?u kho?n không IN có th? t?o ra m?t ngãn x?p tràn. Ví d?, truy v?n sau ðây k?t qu? trong m?t ngãn x?p tràn:
SELECT max(au_id) FROM authors WHERE au_id IN(1,2,5,......,11571)  
-- Query contains over 11570 arguments.
				
Nh?t k? l?i SQL Server ch?a thông tin týõng t? nhý sau khi tràn ngãn x?p x?y ra:
2000-08-10 12:02:37.87 spid51    08/10/00 12:02:37 Stack Overflow Dump not possible - Exception c00000fd E at 0x00587286
2000-08-10 12:02:37.87 spid51    Address=587286 Exception Code = c00000fd
2000-08-10 12:02:37.87 spid51    eax=195922d0 ebx=19592338 ecx=2ad0e938 edx=00000007
2000-08-10 12:02:37.87 spid51    esi=196ce2c8 edi=19592180 eip=00587286 esp=2ac93000
2000-08-10 12:02:37.87 spid51    ebp=2ac93028 efl=00010202
2000-08-10 12:02:37.87 spid51    cs=1b ss=23 ds=23 es=23 fs=38 gs=0
2000-08-10 12:02:37.87 spid51    1: Return Address 00587286
2000-08-10 12:02:37.87 spid51    2: Return Address 0058728B.................
				
Trong m?t s? trý?ng h?p, SQL Server có th? th?c s? t?t máy nhý là k?t qu? c?a ngãn x?p tràn.

CÁCH GI?I QUY?T KHÁC

Vi?t l?i các truy v?n và s? d?ng m?t b?ng #temp có ch?a các giá tr? trong danh sách IN thay v? s? d?ng m?t m?nh ð? IN. Ví d?, truy v?n trý?c có th? ðý?c re-written nhý th? này:
CREATE TABLE #IN_values (au_id char(4))
INSERT INTO #IN_values select au_id FROM Table_with_values_123456789...

SELECT max(au_id)
FROM authors as A
JOIN #IN_values as I ON (A.au_id = I.au_id)
				

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 c?a bài vi?t này.

THÔNG TIN THÊM

Khách hàng không ng?t k?t n?i, nhýng thông báo l?i này có th? x?y ra:
Máy ch?: Msg 8621, t?ng 17, bang 1, ðý?ng 2 Truy v?n b? x? l? l?i bên trong: B? vi x? l? truy v?n ch?y không gian ngãn x?p trong t?i ýu hóa truy v?n.

Thu?c tính

ID c?a bài: 288095 - L?n xem xét sau cùng: 23 Thaìng Taìm 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
T? khóa: 
kbprb kbpending kbmt KB288095 KbMtvi
Máy d?ch
QUAN TROò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:288095

Cung câìp PhaÒn hôÌi