Tôi đang sử dụng NHibernate cho ORM và đã hợp nhất tải nhiều thực thể vào một truy vấn lớn.Độ trễ NHibernate rất cao
Tôi đang thực sự tải từ điển từ, khoảng 500 nghìn mục nhập và mỗi từ liên quan đến những từ khác. Chạy quá trình tải trong nền có thể rất phức tạp trong ứng dụng của chúng tôi, vì chúng tôi sẽ phải tải thủ công một mục nhập chưa được tải đúng thời gian, vì bất kỳ từ nào cũng có thể được yêu cầu bất cứ lúc nào. Yêu cầu duy nhất của chúng tôi là tất cả dữ liệu được tải nhanh nhất có thể. Tôi cũng đã thử sử dụng phiên không quốc tịch, nhưng có ngoại lệ là phiên không quốc tịch không thể tìm nạp bộ sưu tập (vì lý do nào đó, có thể nó không liên quan đến thực tế không có bộ nhớ cache cho phiên không trạng thái?)
Vấn đề là mặc dù truy vấn mất không quá 25 giây trong SQLServer, nó mất hơn 3 phút cho ICriteria.List().
Tôi đã sử dụng NHProf để lập hồ sơ quá trình tải và thấy rằng việc tạo ra các thực thể là một việc tốn kém, chiếm phần lớn thời gian tải trong NHibernate.
Tôi có thể làm gì để giảm độ trễ này không? Việc phân bổ bộ nhớ có tốn kém hay là "điền" dữ liệu?
Cảm ơn!
Cảm ơn bạn đã trả lời nhanh! Tôi đang cố gắng tải hơn 500 nghìn hàng, mỗi hàng trong số đó là một thực thể. Mỗi thực thể có thể trỏ tới các thực thể khác. Tôi đang cố gắng đưa danh sách này càng nhanh càng tốt với tất cả các mối quan hệ liên hệ này. Tôi không viết bất cứ điều gì cho DB, nhưng sau khi thử nghiệm với tải chậm, tôi thấy nó không phù hợp với nhu cầu của tôi. Điều tốt nhất tiếp theo tôi có thể nghĩ là bằng cách nào đó đang tải dữ liệu trong một chủ đề khác trong một số kiểu mẫu của người tiêu dùng sản xuất, nhưng tôi không biết bạn làm thế nào. Bất kỳ ý tưởng? Bạn có bất kỳ mẹo nào cho các công nghệ khác không? Cảm ơn! –
Tôi vẫn không có đầu mối về lý do tại sao bạn muốn tải nhiều thực thể liên quan đến nhau. Điều đó gây khó khăn cho việc đưa ra các đề xuất. Tải dữ liệu trong nền có thể có ý nghĩa, nhưng chỉ khi ứng dụng của bạn có thể bắt đầu làm bất cứ điều gì cần làm mà không có tất cả dữ liệu tại chỗ. Nói tóm lại, hãy cho chúng tôi biết bạn muốn đạt được điều gì, yêu cầu của bạn là gì, có thể chúng tôi có thể đưa ra cho bạn một đề xuất hoặc hai đề xuất phù hợp. – tijmenvdk
Tôi đang thực sự tải một từ điển từ, khi mỗi từ liên quan đến những từ khác. Điều nền có thể rất phức tạp trong ứng dụng của chúng tôi, vì chúng tôi sẽ phải tải thủ công một mục nhập chưa được tải trước đó. Vấn đề là bất kỳ một trong những từ đó có thể được yêu cầu bất cứ lúc nào. Yêu cầu duy nhất của chúng tôi là tất cả dữ liệu được tải nhanh nhất có thể. Tôi cũng đã thử sử dụng phiên không quốc tịch, nhưng có ngoại lệ là phiên không trạng thái không thể tìm nạp bộ sưu tập ... –