The ApprovalPlugin currently fetches the state for each file in a dav response one-by-one, leading to N queries for N files.
Ideally this would use the new preloadCollection event to fetch the relevant data for an entire directory at once, cache it, and then use the cached data for the propFinds.
See for example the TagsPlugin for how to preload tags.