Tôi đã thấy điều này hiển thị một vài vị trí trong mã, không bao giờ có giải thích, chỉ là một nhận xét khó hiểu ở trên nó (Tuyên bố và thực hiện bao gồm ý tưởng ngữ cảnh. Đó là một quy trình chuẩn để chạy một SqlCommand):SqlCommand.Cancel() làm tăng hiệu năng?
//SqlCommand cmd = new SqlCommand();
//cmd.ExecuteReader();
//Read off the results
//Cancel the command. This improves query time.
cmd.Cancel();
Về cơ bản, sau khi hoàn thành một truy vấn, nó quay trở lại và hủy bỏ nó, tuyên bố một số tăng hiệu suất. Tôi cho rằng bạn có thể nhận được một số bộ nhớ trở lại khi nó đi và giải phóng các XmlReader, nhưng thường là nó về để đi ra khỏi phạm vi anyways.
Tôi chưa bao giờ làm phiền với nó trước đây, nhưng cuối cùng nó cũng xuất hiện trong một số mã tôi đang xem xét. Có hủy bỏ một SqlCommand sau khi chạy nó trong mã thực sự bằng cách nào đó tốc độ nó lên, hoặc là điều này chỉ là một số mê tín dị đoan lập trình kỳ lạ?
Bạn đã lược tả mã chưa? Nó sẽ là thú vị để xem có bao nhiêu ảnh hưởng đến nó thực sự có. – jloubert
Có một trường hợp quan trọng trong đó việc gọi Hủy tạo ra sự khác biệt lớn - xem câu trả lời của tôi bên dưới –