Các vấn đề thường gặp hiệu suất của ứng dụng canvas và cách khắc phục

Bạn có thể phát triển ứng dụng canvas bằng mảng đa dạng về nguồn dữ liệu. Hãy chọn nguồn dữ liệu phù hợp và một trình kết nối tùy theo nhu cầu kinh doanh cũng như mục đích bạn thiết kế ứng dụng. Đối với các ứng dụng dành cho doanh nghiệp, Microsoft Dataverse được đề xuất nguồn dữ liệu vì nó cung cấp một số lợi ích về hiệu suất. Đối với các ứng dụng có ít giao dịch, bạn có thể sử dụng bất kỳ nguồn dữ liệu có sẵn nào khác trong môi trường của mình.

Để cân nhắc về hiệu suất của một ứng dụng, hãy nghĩ đến số lượng người dùng sẽ sử dụng ứng dụng khi phát hành, số lượng giao dịch được tạo, truy xuất, cập nhật và xóa (CRUD), loại tương tác dữ liệu, quyền truy cập theo địa lý và loại thiết bị của người dùng.

Trong bài viết này, bạn sẽ tìm hiểu về một số vấn đề hiệu suất phổ biến nhất có thể khiến ứng dụng canvas chạy chậm và cách giải quyết vấn đề. Thông tin này sẽ giúp bạn cải thiện hiệu suất ứng dụng theo kế hoạch kinh doanh và tăng trưởng của bạn.

Chúng ta sẽ bắt đầu với một số vấn đề thường gặp về hiệu suất, bất kể bạn đang sử dụng trình kết nối nào. Trong các phần sau, bạn sẽ tìm hiểu về các vấn đề hiệu suất và các giải pháp cụ thể hơn cho các trình kết nối khác nhau.

Trước khi bắt đầu, hãy đảm bảo rằng bạn hiểu rõ các giai đoạn thực thi ứng dụng canvas và luồng lệnh gọi dữ liệu. Đồng thời, hãy đọc Các nguồn thường gặp có thể khiến ứng dụng canvas hoạt động chậm để tìm hiểu về những vấn đề phổ biến mà bạn có thể tránh khi thiết kế hoặc cập nhật ứng dụng canvas.

Các tập hợp dữ liệu lớn tải chậm trên các nền tảng khác nhau

Hiệu suất của một ứng dụng có thể thay đổi khi tải các bộ dữ liệu lớn trên các nền tảng khác nhau như iOS hoặc Android. Sự khác biệt này xảy ra do mỗi nền tảng có các giới hạn khác nhau về yêu cầu mạng. Ví dụ: số lượng yêu cầu mạng đồng thời được phép có thể khác nhau theo nền tảng. Sự khác biệt này có thể tác động lớn đến thời gian tải dữ liệu của các tập hợp dữ liệu lớn.

Bạn chỉ nên tải dữ liệu bạn cần để hiển thị ngay trên màn hình. Đối với dữ liệu khác, hãy phân trang và lưu dữ liệu vào bộ nhớ đệm. Thêm thông tin: Mẹo và phương pháp hay nhất để cải thiện hiệu suất ứng dụng canvas

Truy xuất quá nhiều cột

Bạn chỉ nên chọn các cột cần thiết cho ứng dụng. Việc thêm các cột khác (hoặc tất cả) các cột từ nguồn dữ liệu sẽ khiến nền tảng tải xuống dữ liệu cột. Hành động này tạo ra một số lượng lớn các lệnh gọi trên mạng, từ đó sử dụng nhiều bộ nhớ trong thiết bị khách. Vấn đề này có thể ảnh hưởng nhiều hơn đến người dùng sử dụng thiết bị di động nếu băng thông mạng bị hạn chế hoặc nếu thiết bị có bộ nhớ hạn chế hoặc bộ xử lý cũ.

Ví dụ: nếu bạn sử dụng Dataverse làm nguồn dữ liệu cho ứng dụng của bạn, hãy đảm bảo rằng bạn đã bật tính năng lựa chọn cột rõ ràng. Tính năng này cho phép Power Apps chỉ truy xuất dữ liệu đến các cột được sử dụng trong ứng dụng.

Để bật tính năng chọn cột chính xác trên ứng dụng canvas, hãy chuyển đến phần Thiết đặt > Các tính năng sắp ra mắt > Bản xem trước, sau đó bật nút chuyển Chọn cột chính xác.

Phiên bản trình duyệt không được hỗ trợ hoặc cũ

Người dùng sử dụng các trình duyệt không được hỗ trợ hoặc cũ, có thể gặp vấn đề về hiệu suất. Đảm bảo người dùng chỉ sử dụng các trình duyệt được hỗ trợ để chạy ứng dụng canvas.

Hiệu suất chậm vì khoảng cách địa lý

Vị trí địa lý của môi trường và khoảng cách của nguồn dữ liệu từ người dùng có thể ảnh hưởng đến hiệu suất.

Chúng tôi khuyên bạn nên đặt môi trường gần với người dùng. Mặc dù Power Apps sử dụng Mạng phân phối nội dung Azure cho nội dung, các lệnh gọi dữ liệu vẫn lấy dữ liệu từ nguồn dữ liệu. Nguồn dữ liệu nằm ở vị trí địa lý khác có thể ảnh hưởng xấu đến hiệu suất của ứng dụng.

Khoảng cách địa lý vượt quá ảnh hưởng đến hiệu suất theo các cách khác nhau, chẳng hạn như độ trễ, thông lượng giảm, băng thông thấp hơn hoặc mất gói.

Không định cấu hình danh sách cho phép

Đảm bảo rằng các URL dịch vụ cần có không bị chặn hoặc đã được thêm vào danh sách cho phép của tường lửa. Để có danh sách đầy đủ tất cả các URL dịch vụ bắt buộc phải được phép cho Power Apps, chuyển đến Các dịch vụ bắt buộc.

Sử dụng các chức năng không thể ủy quyền và giới hạn hàng dữ liệu không phù hợp cho các truy vấn không được ủy quyền

Các chức năng có thể ủy quyền sẽ ủy quyền việc xử lý dữ liệu tại nguồn dữ liệu, giảm thiểu chi phí ở phía máy khách. Khi không thể ủy quyền, bạn có thể hạn chế giới hạn hàng dữ liệu cho các truy vấn không được ủy quyền để số hàng được trả về từ kết nối dựa trên máy chủ vẫn ở mức tối ưu.

Việc sử dụng các chức năng không được ủy quyền và giới hạn hàng dữ liệu cho các truy vấn không được ủy quyền không phù hợp sẽ tăng thêm chi phí khi truyền dữ liệu. Chi phí này dẫn đến việc thao tác dữ liệu nhận được thành JS heap ở phía khách hàng. Đảm bảo sử dụng các chức năng được ủy quyền cho ứng dụng bất cứ khi nào có sẵn và giới hạn hàng dữ liệu tối ưu cho các truy vấn không được ủy quyền.

Thêm thông tin: Sử dụng ủy quyền, Tổng quan về ủy quyền

Cần điều chỉnh sự kiện OnStart

Sự kiện OnStart chạy khi ứng dụng đang tải. Gọi số lượng lớn dữ liệu bằng các hàm trong thuộc tính OnStart của ứng dụng sẽ khiến ứng dụng tải chậm. Màn hình phụ thuộc nhiều vào các điều khiển và giá trị được xác định trên một màn hình khác sẽ gặp lỗi điều hướng màn hình chậm.

Các phần sau đây mô tả một số vấn đề phổ biến nhất thường gặp phải trong những tình huống này.

Số lượng lệnh gọi nhiều trong sự kiện OnStart khiến ứng dụng khởi động chậm

Trong một doanh nghiệp, khối lượng lệnh gọi dữ liệu đến nguồn dữ liệu trung tâm có thể dẫn đến tắc nghẽn máy chủ hoặc tranh chấp nguồn lực.

Sử dụng cơ chế bộ nhớ đệm để tối ưu hóa các lệnh gọi dữ liệu. Nhiều người có thể dùng cùng một ứng dụng, tạo ra nhiều lệnh gọi dữ liệu trên mỗi người dùng đến các điểm cuối của máy chủ. Các cuộc gọi dữ liệu này có thể là một nơi xảy ra tắc nghẽn hoặc sự điều tiết.

Độ trễ trong sự kiện OnStart do tập lệnh nặng

Các tập lệnh nặng tại sự kiện OnStart là một trong những lỗi phổ biến nhất khi thiết kế ứng dụng canvas. Bạn chỉ nên lấy dữ liệu cần thiết cần thiết để ứng dụng khởi động.

Tối ưu hóa công thức trong sự kiện OnStart. Ví dụ: bạn có thể di chuyển một số chức năng sang thuộc tính OnVisible. Bằng cách này, bạn có thể giúp ứng dụng khởi động nhanh và có thể tiếp tục các bước khác khi ứng dụng mở.

Thêm thông tin: Tối ưu hóa thuộc tính OnStart

Tiền bo

Chúng tôi khuyên bạn nên sử dụng thuộc tính App.StartScreen vì thuộc tính đó đơn giản hóa việc khởi chạy ứng dụng và tăng cường hiệu năng của ứng dụng.

Áp lực bộ nhớ ở phía máy khách

Bạn cần phải kiểm tra mức sử dụng bộ nhớ của ứng dụng canvas vì hầu hết các trường hợp, ứng dụng này đều chạy trên các thiết bị di động. Ngoại lệ bộ nhớ trong heap là nguyên nhân rất có thể khiến ứng dụng canvas bị treo hoặc đóng băng ("treo") trên một số thiết bị nhất định.

Javascript (JS) heap có thể đạt được giới hạn do các tập lệnh nặng chạy ở phía máy khách để thêm cột, kết nối, lọc, sắp xếp hoặc nhóm các cột. Trong hầu hết các trường hợp, ngoại lệ hết bộ nhớ tại heap trong ứng dụng khách có thể khiến ứng dụng gặp sự cố hoặc bị treo.

Khi sử dụng dữ liệu từ các nguồn như Dataverse hoặc SQL Server, bạn có thể sử dụng đối tượng Lượt xem để đảm bảo việc kết hợp, lọc, nhóm hoặc sắp xếp diễn ra ở phía máy chủ thay vì phía máy khách. Cách này giúp khách hàng giảm bớt chi phí tạo tập lệnh cho các hành động như vậy.

Nếu các hoạt động nặng trên máy khách như KẾT HỢP hoặc Nhóm theo xảy ra ở phía máy khách với tập dữ liệu có 2.000 bản ghi trở lên, thì các đối tượng trong heap sẽ tăng lên, dẫn đến vượt quá giới hạn bộ nhớ.

Công cụ dành cho nhà phát triển cho hầu hết các trình duyệt cho phép bạn định cấu hình bộ nhớ. Công cụ này sẽ giúp bạn trực quan hóa kích thước heap, tài liệu, các nút và trình nghe. Lập hồ sơ hiệu suất của ứng dụng bằng cách sử dụng trình duyệt, như được mô tả trong Microsoft Edge (Chromium) Tổng quan về công cụ dành cho nhà phát triển. Kiểm tra các tình huống vượt quá ngưỡng bộ nhớ của JS heap. Thêm thông tin: Khắc phục sự cố bộ nhớ

Ví dụ về áp lực bộ nhớ cho một ứng dụng như trình bày từ các công cụ dành cho nhà phát triển trình duyệt.

Những cân nhắc về hiệu suất đối với trình kết nối SQL Server

Bạn có thể sử dụng trình kết nối SQL Server cho Power Apps để kết nối với SQL Server tại chỗ hoặc Cơ sở dữ liệu Azure SQL. Phần này mô tả các vấn đề thường gặp liên quan đến hiệu suất và giải pháp để sử dụng trình kết nối này cho ứng dụng canvas. Thêm thông tin: Kết nối với SQL Server từ Power Apps, Tạo ứng dụng canvas từ Cơ sở dữ liệu Azure SQL

Lưu ý

Mặc dù phần này sử dụng trình kết nối SQL Server để minh họa cho các vấn đề về hiệu suất và cách giải quyết, hầu hết các đề xuất cũng áp dụng để sử dụng các loại cơ sở dữ liệu—chẳng hạn như MySQL hoặc PostgreSQL—làm nguồn dữ liệu.

Chúng ta hãy xem xét các vấn đề thường gặp về hiệu suất và giải pháp khi sử dụng trình kết nối SQL Server cho ứng dụng canvas.

Truy vấn N+1

Các thư viện tạo quá nhiều yêu cầu đến máy chủ sẽ gây ra sự cố truy vấn N+1. Sự cố truy vấn N+1 là một trong những sự cố thường gặp nhất khi sử dụng tùy chọn điều khiển Thư viện.

Để tránh gặp phải sự cố, hãy sử dụng xem các đối tượng trong phần phụ trợ SQL hoặc thay đổi các kịch bản giao diện người dùng.

Quét bảng thay vì tìm kiếm chỉ mục

Một ứng dụng có thể chạy chậm lại nếu các hàm mà ứng dụng sử dụng chạy truy vấn trong cơ sở dữ liệu dẫn đến việc quét bảng thay vì tìm kiếm chỉ mục. Thêm thông tin: Gợi ý, QUÉT bảng và TÌM KIẾM chỉ mục

Để giải quyết những sự cố như vậy, hãy sử dụng StartsWith thay vì IN trong công thức. Với nguồn dữ liệu SQL, toán tử StartsWith dẫn đến một tìm kiếm chỉ mục, nhưng toán tử IN dẫn đến quét chỉ mục hoặc bảng.

Truy vấn chậm

Bạn có thể cấu hình và điều chỉnh các truy vấn cũng như chỉ mục chậm trên cơ sở dữ liệu SQL. Ví dụ: nếu có một công thức nhận dữ liệu với thứ tự giảm dần (DESC) trên một cột nhất định, cột sắp xếp đó phải có một chỉ mục với thứ tự giảm dần. Khóa chỉ mục này tạo thứ tự tăng dần (ASC) theo mặc định.

Bạn cũng có thể kiểm tra địa chỉ URL của các yêu cầu dữ liệu. Ví dụ: đoạn mã yêu cầu dữ liệu sau (lệnh gọi OData một phần) yêu cầu SQL trả về cột 500 bản ghi khớp cột với Giá trị và thứ tự theo ID giảm dần.

Items? \$filter=Column eq 'Value' & Orderby = ID desc & top 500

Điều này giúp hiểu rõ các yêu cầu chỉ mục để bao gồm các điều kiện yêu cầu tương tự. Trong ví dụ này, nếu cột ID có một chỉ mục với thứ tự giảm dần, truy vấn sẽ được thực hiện nhanh hơn.

Kiểm tra kế hoạch thực thi của các truy vấn chậm để xem có tồn tại bất kỳ hoạt động quét bảng hoặc chỉ mục nào không. Giám sát bất kỳ chi phí vượt quá nào của tra cứu khóa trong kế hoạch thực hiện.

Thông tin thêm:

Tranh chấp tài nguyên cơ sở dữ liệu

Đảm bảo nguồn dữ liệu—cơ sở dữ liệu SQL—không có tranh chấp nguồn lực như tắc nghẽn bộ xử lý, tranh chấp I/O, áp lực bộ nhớ hoặc tranh chấp tempDB. Ngoài ra, hãy kiểm tra thời gian chờ khóa, chờ, chốt lại và truy vấn.

Tiền bo

Sử dụng điều chỉnh tự động để hiểu rõ hơn về các vấn đề hiệu suất truy vấn tiềm ẩn, các giải pháp được đề xuất và để tự động khắc phục các sự cố đã xác định.

Yêu cầu máy khách dày đặc hoặc quá mức

Một ứng dụng đang chạy các thao tác Nhóm theo, Lọc theo hoặc KẾT HỢP ở phía máy khách sử dụng bộ xử lý và nguồn lực bộ nhớ từ các thiết bị máy khách. Tùy thuộc vào kích thước dữ liệu, các hoạt động này có thể mất nhiều thời gian tạo tập lệnh hơn ở phía máy khách, làm tăng kích thước JS heap trên máy khách. Vấn đề này sẽ tăng đối với nguồn dữ liệu tại chỗ vì mỗi lệnh gọi dữ liệu tra cứu được truyền đến nguồn dữ liệu thông qua cổng dữ liệu.

Trong những trường hợp như vậy, hãy sử dụng đối tượng View trong cơ sở dữ liệu SQL cho các thao tác Group By, Filter By hoặc JOIN . Các dạng xem có thể sử dụng các cột chọn lọc và loại bỏ các cột không cần thiết với loại dữ liệu lớn như NVARCHAR(MAX), VARCHAR(MAX)VARBINARY(MAX).

Tiền bo

Cách tiếp cận này cũng giúp giải quyết vấn đề truy vấn N+1.

Kích thước dữ liệu được chuyển cho khách hàng

Theo mặc định, ứng dụng canvas hiển thị dữ liệu bằng cách sử dụng bảng hoặc dạng xem từ các đối tượng cơ sở dữ liệu có sẵn. Việc truy xuất tất cả các cột từ một bảng có thể dẫn đến phản hồi chậm, đặc biệt khi sử dụng các loại dữ liệu lớn như NVARCHAR(MAX).

Việc chuyển một lượng lớn dữ liệu cho khách hàng mất nhiều thời gian. Việc chuyển này cũng dẫn đến mất nhiều thời gian tạo tập lệnh hơn khi có lượng lớn dữ liệu trong JS heap ở phía máy khách, như được mô tả trước đó trong bài viết này.

Để giảm kích thước dữ liệu được chuyển đến máy khách, hãy sử dụng chế độ xem với các cột cụ thể cần thiết cho ứng dụng và đảm bảo rằng tính năng lựa chọn cột rõ ràng được bật, như được mô tả trước đó trong bài viết này.

Những cân nhắc cụ thể đối với Máy chủ SQL tại chỗ

Hiệu suất của ứng dụng canvas sử dụng trình kết nối Máy chủ SQL với cổng dữ liệu tại chỗ có thể bị ảnh hưởng theo nhiều cách. Phần này liệt kê các vấn đề hiệu suất phổ biến và các giải pháp cụ thể khi sử dụng nguồn cơ sở dữ liệu tại chỗ.

Cổng dữ liệu tại chỗ không tốt

Các tổ chức có thể xác định nhiều nút cho cổng dữ liệu tại chỗ. Ngay cả khi không truy cập được một trong các nút, các yêu cầu dữ liệu trên nút không tốt sẽ không trả lại kết quả trong một khung thời gian thích hợp hoặc tạo ra thông báo lỗi "không truy cập được" sau khi đợi một lúc.

Đảm bảo tất cả các nút cổng dữ liệu tại chỗ đều hoạt động tốt và được định cấu hình với độ trễ mạng tối thiểu giữa các nút và phiên bản SQL.

Vị trí của cổng dữ liệu tại chỗ

Cổng dữ liệu yêu cầu các lệnh gọi mạng tới nguồn dữ liệu tại chỗ để diễn giải các yêu cầu OData. Ví dụ: cổng dữ liệu cần hiểu rõ lược đồ bảng dữ liệu để dịch các yêu cầu OData sang câu lệnh ngôn ngữ thao tác dữ liệu SQL (DML). Chi phí bổ sung được thêm vào khi cổng dữ liệu được cấu hình ở một vị trí riêng biệt có độ trễ mạng cao giữa cổng dữ liệu và phiên bản SQL.

Trong môi trường doanh nghiệp, bạn nên có một cụm cổng dữ liệu có thể mở rộng khi yêu cầu dữ liệu lớn. Kiểm tra xem có bao nhiêu kết nối được thiết lập giữa các nút cổng dữ liệu và phiên bản SQL.

Bằng cách kiểm tra các kết nối đồng thời trong cổng dữ liệu tại chỗ hoặc phiên bản SQL, tổ chức của bạn có thể xác định thời điểm cổng dữ liệu cần được mở rộng quy mô và có bao nhiêu nút.

Khả năng mở rộng cổng dữ liệu tại chỗ

Nếu bạn muốn truy cập một lượng lớn dữ liệu từ cổng dữ liệu tại chỗ, thì một nút cổng dữ liệu tại chỗ duy nhất cũng có thể trở thành sự cố gây tắc nghẽn khi xử lý khối lượng yêu cầu lớn như vậy.

Một nút cổng dữ liệu tại chỗ duy nhất có thể đủ để xử lý 200 kết nối đồng thời trở xuống. Tuy nhiên, nếu tất cả các kết nối đồng thời này đang thực hiện các truy vấn một cách tích cực, thì các yêu cầu khác sẽ phải đợi đến khi có sẵn kết nối.

Để biết thông tin về cách đảm bảo rằng cổng dữ liệu tại chỗ của bạn mở rộng phù hợp với khối lượng dữ liệu và yêu cầu, hãy chuyển đến Theo dõi và tối ưu hóa hiệu suất cổng dữ liệu tại chỗ.

Các cân nhắc cụ thể đối với Cơ sở dữ liệu Azure SQL

Các ứng dụng canvas có thể kết nối với Cơ sở dữ liệu Azure SQL bằng trình kết nối SQL Server. Nguyên nhân phổ biến của các vấn đề về hiệu suất khi sử dụng Cơ sở dữ liệu Azure SQL là chọn sai cấp cho yêu cầu kinh doanh của bạn.

Cơ sở dữ liệu Azure SQL có sẵn trong các cấp dịch vụ khác nhau, với các khả năng khác nhau để phù hợp với các yêu cầu kinh doanh khác nhau. Để biết thêm thông tin về các bậc, hãy truy cập Tài liệu Cơ sở dữ liệu Azure SQL.

Với các yêu cầu dữ liệu lớn, các nguồn lực trên cấp bạn chọn có thể bị điều tiết ngay khi đạt đến giá trị ngưỡng. Việc điều tiết như vậy sẽ ảnh hưởng đến hiệu suất của nhóm truy vấn tiếp theo.

Kiểm tra cấp dịch vụ của Cơ sở dữ liệu Azure SQL. Cấp thấp hơn sẽ có một số hạn chế và ràng buộc. Từ góc độ hiệu suất, CPU, thông lượng I/O và độ trễ là quan trọng. Do đó, bạn nên kiểm tra hiệu suất của cơ sở dữ liệu SQL định kỳ và kiểm tra xem việc sử dụng nguồn lực có vượt quá ngưỡng hay không. Ví dụ: SQL Server tại chỗ thường đặt ngưỡng sử dụng CPU ở khoảng 75 %.

Những cân nhắc về hiệu suất đối với trình kết nối SharePoint

Bạn có thể dùng trình kết nối SharePoint để tạo ứng dụng bằng cách sử dụng dữ liệu từ Microsoft Lists. Bạn cũng có thể tạo ứng dụng canvas trực tiếp từ dạng xem danh sách. Chúng ta hãy xem xét các vấn đề thường gặp về hiệu suất và giải pháp để sử dụng nguồn dữ liệu SharePoint cho ứng dụng canvas.

Quá nhiều cột tra cứu động

SharePoint hỗ trợ nhiều loại dữ liệu khác nhau, bao gồm các tra cứu động như Người, NhómTính toán. Nếu một danh sách xác định quá nhiều cột động, thì cần nhiều thời gian hơn để thao tác các cột động này trong SharePoint trước khi trả lại dữ liệu cho khách hàng đang chạy ứng dụng canvas.

Đừng lạm dụng các cột tra cứu động trong SharePoint. Việc sử dụng quá mức này có thể dẫn đến chi phí mà lẽ ra có thể tránh được cho phía SharePoint để thao tác với dữ liệu. Ví dụ: thay vào đó, bạn có thể sử dụng cột tĩnh để giữ bí danh email hoặc tên của người dùng.

Cột hình ảnh và tệp đính kèm

Kích thước của hình ảnh và tệp đính kèm có thể góp phần gây ra phản hồi chậm trong khi truy xuất đến máy khách.

Xem lại danh sách của bạn và đảm bảo chỉ xác định các cột cần thiết. Số lượng cột trong danh sách ảnh hưởng đến hiệu suất của các yêu cầu dữ liệu. Tác động này là do truy xuất các bản ghi đã khớp hoặc các bản ghi đã đạt đến giới hạn hàng dữ liệu định trước và truyền trở lại máy khách với tất cả các cột được xác định trong danh sách—ngay cả khi ứng dụng không sử dụng tất cả.

Để chỉ truy vấn các cột mà ứng dụng đã sử dụng, hãy bật tính năng lựa chọn cột rõ ràng, như được mô tả trước đó trong bài viết này.

Danh sách lớn

Nếu bạn có một danh sách lớn với hàng trăm nghìn bản ghi, hãy xem xét phân vùng danh sách hoặc chia danh sách thành nhiều danh sách dựa trên các tham số như danh mục hoặc ngày và giờ.

Ví dụ: dữ liệu của bạn có thể được lưu trữ trong các danh sách khác nhau hàng năm hoặc hàng tháng. Trong trường hợp đó, bạn có thể thiết kế ứng dụng để cho phép người dùng chọn khoảng thời gian và truy xuất dữ liệu trong phạm vi đó.

Trong một môi trường được kiểm soát, điểm chuẩn hiệu suất đã chứng minh rằng hiệu suất của các yêu cầu OData so với Microsoft Lists hoặc SharePoint có liên quan nhiều đến số cột trong danh sách và số hàng đang được truy xuất (giới hạn bởi giới hạn hàng dữ liệu cho các truy vấn không được ủy quyền). Việc có số lượng cột thấp hơn và cài đặt giới hạn hàng dữ liệu thấp hơn có thể giúp ứng dụng canvas hoạt động tốt hơn.

Tuy nhiên, trong thế giới thực, các ứng dụng được thiết kế để đáp ứng các yêu cầu kinh doanh nhất định. Giảm giới hạn hàng dữ liệu hoặc số cột trong danh sách có thể là việc không thể làm nhanh hoặc dễ dàng. Tuy nhiên, bạn nên giám sát các yêu cầu OData ở phía máy khách và điều chỉnh giới hạn hàng dữ liệu cho các truy vấn không được ủy quyền và số lượng cột trong một danh sách.

Những cân nhắc về hiệu suất để sử dụng Dataverse làm nguồn dữ liệu

Khi bạn dùng Microsoft Dataverse làm nguồn dữ liệu, các yêu cầu dữ liệu sẽ chuyển trực tiếp đến phiên bản môi trường mà không cần chuyển qua Azure API Management. Thông tin thêm: Luồng gọi dữ liệu khi kết nối với Microsoft Dataverse

Tiền bo

Khi bảng tùy chỉnh được sử dụng trong Dataverse, bạn có thể phải cấu hình bảo mật bổ sung để người dùng có thể xem các bản ghi bằng ứng dụng canvas. Thêm thông tin: Các khái niệm bảo mật trong Dataverse, Đặt cấu hình bảo mật người dùng trong môi trườngCác vai trò và đặc quyền bảo mật

Ứng dụng canvas được kết nối với Dataverse có thể hoạt động chậm nếu chạy tập lệnh nhiều ứng dụng khách như Lọc theo hoặc KẾT HỢP ở phía máy khách thay vì máy chủ.

Sử dụng dạng xem Dataverse khi có thể. Chế độ xem có tiêu chí kết hợp hoặc bộ lọc bắt buộc giúp giảm chi phí sử dụng toàn bộ bảng. Ví dụ: nếu cần nối các bảng và lọc dữ liệu, bạn có thể xác định dạng xem bằng cách nối chúng và chỉ xác định các cột mình cần. Sau đó, bạn có thể sử dụng chế độ xem này trong ứng dụng của mình để tạo chi phí này ở phía máy chủ để kết hợp/lọc thay vì phía máy khách.Phương pháp này không chỉ làm giảm các hoạt động bổ sung mà còn truyền dữ liệu. Để biết thông tin về chỉnh sửa tiêu chí bộ lọc và sắp xếp, hãy truy cập Chỉnh sửa tiêu chí bộ lọc.

Những cân nhắc về hiệu suất đối với trình kết nối Excel

Trình kết nối Excel cung cấp kết nối từ ứng dụng canvas tới dữ liệu trong bảng trong tệp Excel. Trình kết nối này có những hạn chế so với các nguồn dữ liệu khác—. Ví dụ: hạn chế về các hàm ủy quyền—hạn chế ứng dụng canvas tải dữ liệu từ bảng lên đến 2.000 bản ghi. Để tải hơn 2.000 bản ghi, hãy phân vùng dữ liệu của bạn trong các bảng dữ liệu khác nhau làm nguồn dữ liệu khác.

Chúng ta hãy xem xét các vấn đề thường gặp về hiệu suất và giải pháp bằng cách sử dụng nguồn dữ liệu Excel cho ứng dụng canvas và cách khắc phục vấn đề đó.

Quá nhiều bảng dữ liệu và kích thước dữ liệu lớn

Ứng dụng có thể hoạt động chậm khi sử dụng tệp Excel có quá nhiều bảng dữ liệu hoặc bảng dữ liệu có kích thước dữ liệu quá lớn trên một số cột. Tệp Excel không phải là cơ sở dữ liệu quan hệ hoặc nguồn dữ liệu cung cấp các hàm ủy quyền. Power Apps phải tải dữ liệu từ các bảng dữ liệu đã xác định trước, sau đó sử dụng các chức năng như Bộ lọc, Sắp xếp, KẾT HỢP, Nhóm theoTìm kiếm.

Việc có quá nhiều bảng dữ liệu, với số lượng hàng và cột cao sẽ ảnh hưởng đến hiệu suất ứng dụng và chi phí phía máy khách vì mỗi bảng dữ liệu cần được thao tác trong JS heap. Hiệu ứng này cũng dẫn đến việc ứng dụng tiêu tốn nhiều bộ nhớ phía máy khách hơn.

Để đảm bảo ứng dụng của bạn không bị ảnh hưởng bởi vấn đề này, hãy chỉ xác định các cột cần thiết trên bảng dữ liệu trong tệp Excel.

Nhiều giao dịch

Excel không phải là một hệ thống cơ sở dữ liệu quan hệ. Mọi thay đổi từ một ứng dụng đều được Excel quản lý giống như cách người dùng đã thay đổi dữ liệu trong tệp Excel. Nếu ứng dụng có số lần đọc cao nhưng ít hoạt động CRUD, thì ứng dụng có thể hoạt động tốt. Tuy nhiên, nếu ứng dụng thực hiện nhiều giao dịch, điều đó có thể ảnh hưởng xấu đến hiệu suất của ứng dụng.

Không có giá trị ngưỡng cụ thể cho số lượng giao dịch vì nó cũng tùy thuộc vào dữ liệu đang thao tác. Một số khía cạnh khác cũng ảnh hưởng đến hiệu suất ứng dụng, chẳng hạn như tổng chi phí mạng hoặc thiết bị của người dùng.

Nếu bạn có dữ liệu chỉ đọc, bạn có thể nhập dữ liệu đó vào ứng dụng cục bộ thay vì tải dữ liệu đó từ nguồn dữ liệu. Đối với các ứng dụng dành cho doanh nghiệp, hãy sử dụng các nguồn dữ liệu như Dataverse, SQL Server hoặc SharePoint.

Kích thước tệp

Bạn có thể chọn từ một loạt các tùy chọn cloud storage với dung lượng lưu trữ khác nhau—hoặc có thể đặt cấu hình—cho tệp Excel. Tuy nhiên, việc có một tệp Excel lớn với tất cả các bảng được xác định trong một tệp sẽ bổ sung thêm chi phí cho ứng dụng khi tải tệp xuống và đọc dữ liệu để tải ở phía máy khách.

Thay vì sử dụng một tệp lớn, hãy chia dữ liệu thành nhiều tệp Excel với bảng dữ liệu tối thiểu. Sau đó chỉ kết nối với từng tệp khi bạn cần. Bằng cách này, việc tải dữ liệu từ bảng dữ liệu diễn ra thành từng đoạn, giảm chi phí của nhiều bảng hoặc tập dữ liệu lớn.

Vị trí tệp

Vị trí địa lý của nguồn dữ liệu và khoảng cách từ các địa điểm máy khách có thể dẫn đến tắc nghẽn hiệu suất chung cho ứng dụng và gây ra độ trễ mạng. Hiệu ứng này có thể tăng lên khi máy khách di động có băng thông kết nối hạn chế.

Tốt hơn là giữ tệp gần người dùng cuối của bạn (hoặc hầu hết người dùng cuối nếu bạn có đối tượng toàn cầu) để tệp có thể được tải xuống nhanh chóng.

Các bước tiếp theo

Mẹo và phương pháp hay nhất để cải thiện hiệu suất ứng dụng canvas

Xem thêm

Hiểu các giai đoạn thực thi ứng dụng canvas và luồng lệnh gọi dữ liệu
Các nguyên nhân phổ biến gây ra hiệu suất chậm cho ứng dụng canvas
Các vấn đề thường gặp và giải pháp cho Power Apps
Khắc phục sự cố khởi động cho Power Apps

Lưu ý

Bạn có thể cho chúng tôi biết bạn thích dùng ngôn ngữ nào cho tài liệu không? Làm một cuộc khảo sát ngắn. (xin lưu ý, khảo sát này bằng tiếng Anh)

Cuộc khảo sát sẽ mất khoảng bảy phút. Không có dữ liệu cá nhân nào được thu thập (điều khoản về quyền riêng tư).