Bạn nói đúng, các câu lệnh chuẩn bị thực sự phải được hỗ trợ bởi máy chủ. Chuẩn bị thực sự có nghĩa là truy vấn cơ sở dữ liệu trong hai bước.
Bước đầu tiên bao gồm gửi một mẫu truy vấn để máy chủ có thể biên dịch trước. Công cụ cơ sở dữ liệu cũng chuẩn bị trước kế hoạch thực thi (chủ yếu là chỉ mục nào sẽ được sử dụng để phục vụ truy vấn thực tế).
Bước thứ hai là cung cấp các giá trị thực tế cho trình giữ chỗ và chạy truy vấn thực tế với các tham số này.
Điều này thường cho phép thực thi nhanh hơn một số truy vấn tương tự, bởi vì 1. truy vấn đã được biên dịch trước (kế hoạch thực thi đã được tính toán) và 2. chỉ các giá trị tham số được gửi sau đó.
Một truy vấn mô phỏng chỉ là một đường cú pháp, chỉ cho phép gửi dễ dàng hơn (không thực thi nhanh hơn) một số truy vấn liên tiếp, tương tự. Các câu lệnh SQL đầy đủ được gửi đến máy chủ mỗi khi thực thi một truy vấn mô phỏng.
Khi máy chủ không hỗ trợ các câu lệnh chuẩn bị thực sự, bạn vẫn nên sử dụng các câu lệnh chuẩn bị được mô phỏng, vì trình điều khiển vẫn đảm nhận việc thoát các giá trị cho bạn, làm cho việc chèn SQL ít xảy ra hơn.