Hello Carole,
We've tested the required functionality in our environment, and it is very slow even on 1000 mailboxes. The script returns mailboxes a user has Full Access to in around 8-10 minutes. Given 3000 mailboxes and a real-life environment where many users are connecting to DCs and Exchange Servers all the time, that will be even worse.
We can suggest a workaround with a Scheduled Task that will run, say, once or a couple of times a day. The task will store mailboxes a user has Full Access to in a certain attribute of the user account. Thus, when viewing properties of a user, it will be possible to see the mailboxes the user has Full Access to by simply checking the attribute. As for the attribute you can use, it can be a certain multivalued attribute that can store DN values, for example, See Also. When viewing such an attribute in the Web Interface, users will be able to simply click on an entry to view the properties of the mailbox it represents.
The advantage of this method is that users won't have to wait to view the output. The disadvantage is that it won't be real time. The attribute will store the delegation by the time when the Scheduled Task was run on a particular mailbox.
If you are OK with such a solution, we can provide you the details on how to implement it.