Các truy vấn SOQL (Ngôn ngữ truy vấn đối tượng Salesforce) đôi khi có thể chạy nhanh hơn trong môi trường hộp cát so với môi trường sản xuất do một số yếu tố kỹ thuật và hoạt động nội tại với cách thiết lập và quản lý hộp cát Salesforce. Hiểu các yếu tố này đòi hỏi phải đi sâu vào sự khác biệt về khối lượng dữ liệu, lập chỉ mục, bộ nhớ đệm, tranh chấp tài nguyên và tối ưu hóa hệ thống cụ thể cho môi trường hộp cát so với sản xuất.
Khối lượng dữ liệu và độ phức tạp
Một trong những lý do chính khiến các truy vấn SOQL chạy nhanh hơn trong môi trường hộp cát là sự khác biệt về khối lượng dữ liệu. Hộp cát thường có các bộ dữ liệu nhỏ hơn môi trường sản xuất, đặc biệt nếu chúng là hộp cát một phần hoặc nhà phát triển, chỉ sao chép một tập hợp con của dữ liệu sản xuất. Khối lượng dữ liệu giảm này có nghĩa là cần có ít bản ghi hơn cần được quét, lập chỉ mục và được trả về bởi các truy vấn, tự nhiên tăng tốc thời gian thực hiện truy vấn. Ngay cả trong các hộp cát đầy đủ phản ánh dữ liệu sản xuất, việc làm mới hoặc ảnh chụp nhanh thường xuyên có thể có nghĩa là dữ liệu không phải là đồ sộ hoặc thường xuyên được truy cập như trong ORG sản xuất trực tiếp, dẫn đến hiệu suất tốt hơn do tải hệ thống tổng thể thấp hơn.
lập chỉ mục và chọn lọc
Trình tối ưu hóa truy vấn của Salesforce phụ thuộc rất nhiều vào các chỉ mục để tăng tốc độ thực thi truy vấn. Các truy vấn lọc trên các trường được lập chỉ mục thường nhanh hơn nhiều vì Salesforce có thể nhanh chóng thu hẹp tập kết quả thay vì quét toàn bộ bảng. Trong môi trường hộp cát, trình tối ưu hóa truy vấn có thể hoạt động hiệu quả hơn vì phân phối dữ liệu có thể khác nhau, cho phép các chỉ mục được chọn lọc hơn. Ví dụ: nếu một hộp cát có ít giá trị trùng lặp hoặc null hơn trong các trường được lập chỉ mục nhất định so với sản xuất, trình tối ưu hóa truy vấn có thể sử dụng các chỉ mục hiệu quả hơn để thực hiện truy vấn nhanh hơn. Hơn nữa, môi trường hộp cát thường cho phép linh hoạt hơn trong việc thử nghiệm các chỉ mục tùy chỉnh hoặc điều chỉnh truy vấn mà không ảnh hưởng đến sản xuất, điều này có thể tối ưu hóa hiệu suất SOQL trong quá trình phát triển và thử nghiệm.
Giảm sự tranh chấp và cách ly tài nguyên
Môi trường sản xuất là nhiều người thuê và được sử dụng nhiều bởi người dùng cuối thực hiện đồng thời các hoạt động khác nhau, tạo ra sự tranh chấp tài nguyên. Sự tranh chấp này có thể làm chậm thực thi truy vấn như CPU, bộ nhớ và I/O được chia sẻ giữa nhiều quy trình đồng thời. Ngược lại, hộp cát, đặc biệt là nhà phát triển và nhà phát triển Pro Sandbox, có xu hướng có ít người dùng đồng thời hơn và tải hệ thống tổng thể thấp hơn. Việc giảm nhu cầu xử lý đồng thời này có nghĩa là các truy vấn có thể truy cập tài nguyên dễ dàng hơn, giảm thời gian chờ đợi và tăng tốc độ thực hiện.
Bộ nhớ đệm và truy vấn Kế hoạch ổn định
Salesforce sử dụng các cơ chế lưu trữ truy vấn tinh vi để cải thiện hiệu suất. Trong môi trường hộp cát, một số kết quả truy vấn và kế hoạch thực hiện nhất định có thể được lưu trữ, đặc biệt nếu các thử nghiệm lặp đi lặp lại hoặc lặp lại phát triển thực hiện các truy vấn tương tự. Hiệu ứng bộ nhớ đệm này có thể tăng tốc hiệu suất truy vấn trên các lần chạy tiếp theo. Hơn nữa, vì dữ liệu hộp cát thay đổi ít thường xuyên hơn so với sản xuất, các kế hoạch và kết quả truy vấn được lưu trong bộ nhớ cache vẫn có giá trị lâu hơn, nâng cao hiệu quả truy vấn. Môi trường sản xuất, với sự thay đổi dữ liệu năng động và liên tục và hoạt động giao dịch nặng, không thể tận dụng bộ nhớ đệm một cách hiệu quả, dẫn đến việc sắp xếp lại các kế hoạch truy vấn thường xuyên hơn và do đó hiệu suất truy vấn chậm hơn.
Giới hạn của thống đốc và bối cảnh thực thi
Salesforce áp đặt các giới hạn của thống đốc bao gồm số lượng truy vấn SOQL tối đa cho mỗi giao dịch để duy trì sự ổn định của nền tảng. Trong các hộp cát phát triển, các nhà phát triển thường định cấu hình và kiểm soát các bối cảnh thực thi cẩn thận hơn để tránh đạt được các giới hạn này, ví dụ bằng cách các truy vấn và xử lý dữ liệu theo từng lô. Sự phát triển và thử nghiệm chánh niệm này giúp giữ cho các truy vấn được tối ưu hóa trước khi triển khai để sản xuất. Trong sản xuất, các quy trình kinh doanh phức tạp và tích hợp có thể vô tình gây ra truy vấn quá mức hoặc không hiệu quả, dẫn đến hiệu suất chậm hơn do các lần truy cập cơ sở dữ liệu lặp đi lặp lại và đạt giới hạn thống đốc. Hộp cát cung cấp một không gian an toàn hơn để gỡ lỗi và tối ưu hóa các truy vấn này, mang lại hiệu suất tương đối tốt hơn.
Sự khác biệt trong các quy tắc chia sẻ và cài đặt bảo mật
Môi trường Sandbox có thể đã đơn giản hóa hoặc các quy tắc chia sẻ khác nhau và cấu hình bảo mật so với sản xuất. Salesforce thực thi các quy tắc chia sẻ và khả năng hiển thị ở cấp cơ sở dữ liệu trong quá trình thực hiện truy vấn. Các tính toán chia sẻ phức tạp trong sản xuất có thể thêm chi phí cho các truy vấn, đặc biệt là các tính toán liên quan đến bảo mật đối tượng và mức độ kỷ lục. Hộp cát được sử dụng để phát triển hoặc thử nghiệm đôi khi nâng hoặc đơn giản hóa các quy tắc này, giảm độ phức tạp thực thi và do đó tăng tốc hiệu suất truy vấn SOQL.
Tập trung thử nghiệm và tối ưu hóa
Trong môi trường hộp cát, thường có tập trung vào thử nghiệm và tối ưu hóa. Các nhà phát triển và quản trị viên tích cực lập hồ sơ, phân tích và cải thiện các truy vấn SOQL bằng cách sử dụng các công cụ Salesforce như Công cụ Kế hoạch Truy vấn, Nhật ký hiệu suất của nhà phát triển và nhật ký gỡ lỗi. Do đó, các thực tiễn tốt nhất đã học được trong quá trình phát triển hộp cát như chỉ chọn các trường cần thiết, áp dụng các bộ lọc có chọn lọc, tránh các vòng với các truy vấn bên trong chúng, sử dụng các mối quan hệ và tập hợp một cách chu đáo và xử lý không đồng bộ (như Apex hàng loạt) được thực hiện, dẫn đến các truy vấn nhanh hơn. Môi trường sản xuất vẫn có thể chứa các truy vấn di sản hoặc chưa được tối ưu hóa làm suy giảm hiệu suất.
Các yếu tố đóng góp khác
- Skew dữ liệu: Dữ liệu sản xuất thường có các bản phân phối sai lệch, trong đó một tập hợp nhỏ các bản ghi chi phối bộ dữ liệu. Skew này có thể làm giảm hiệu suất truy vấn bằng cách đánh bại các chiến lược lập chỉ mục. Hộp cát có thể có ít độ lệch hơn, cho phép các truy vấn hiệu quả hơn.
- Trạng thái BIN BIN BIN BIN: BIN BIN BIN có thể ảnh hưởng đến hiệu suất. Sản xuất orgs thường có thùng tái chế đầy đủ hơn các hộp cát, có thể làm chậm các truy vấn SOQL truy cập các đối tượng hoặc lịch sử liên quan.
- Thống kê độ trễ và truy vấn sao chép: Trình tối ưu hóa truy vấn của Salesforce phụ thuộc vào số liệu thống kê được tính toán trước được làm mới định kỳ. Hộp cát, đặc biệt là những cái mới được làm mới, có thể có số liệu thống kê mới cho phép trình tối ưu hóa chọn các gói truy vấn tốt hơn.
- Cải tiến nền tảng: Đôi khi Salesforce triển khai các cải tiến hiệu suất mới và tính năng đầu tiên trong hộp cát để thử nghiệm sớm. Điều này có thể tạm thời tăng cường hiệu suất hộp cát so với môi trường sản xuất cũ.
Tóm lại, các truy vấn SOQL chạy nhanh hơn trong môi trường hộp cát chủ yếu do các bộ dữ liệu nhỏ hơn và ít phức tạp hơn, chọn lọc chỉ số tốt hơn, giảm sự tranh chấp hệ thống, bộ nhớ đệm hiệu quả, tối ưu hóa truy vấn tập trung trong quá trình phát triển và cấu hình bảo mật và chia sẻ đơn giản hơn. Các yếu tố kết hợp này tạo ra các điều kiện trong đó Trình tối ưu hóa truy vấn của Salesforce có thể thực hiện các truy vấn hiệu quả hơn và khi tài nguyên có sẵn hơn để xử lý các truy vấn. Môi trường này thúc đẩy hiệu suất tốt hơn không thể đạt được trong bản chất được tải rất cao và phức tạp của các org. Do đó, các hộp cát đóng vai trò là sân chơi phát triển/thử nghiệm và là nơi để điều chỉnh hiệu suất trước khi triển khai các truy vấn và ứng dụng vào sản xuất trong đó nhu cầu hiệu suất và độ phức tạp dữ liệu cao hơn nhiều. Tất cả những hiểu biết này được rút ra từ các thực tiễn tốt nhất về hiệu suất của Salesforce, trải nghiệm của nhà phát triển và đặc điểm kiến trúc của Salesforce.