Du command takes too long to respond

I understand that my folder has huge amount of files / data.

When I fire the command du -sm * its been running past 30 minutes with NO output on my AiX system.

ls -ltr command returns output fairly quick from inside the same folder.

My objective is the list files / folders consuming maximum space.

Is there way I can optimize the command to get the desired output in less time ? Any suggestions would be appreciated.

Its not the same computing size especially if so many files than just list...Because it after has to add total of each subdirectory etc...
What is /data? a file system? in which case why not just

du -sm /data

and where it gets complicated is if you have NFS mounted on top...

Is /data ia separata file system? Then you can quickly query it with a statfs() e.g. df /data . (Maybe you need some options like df -Pk /data .)
But if you need to break it down then you must use du.
Here is a command that I often use for cleanup:

du -akx "$@" | sort -k1,1n | tail -100

I have used "$@" so it will take arguments when it is placed in a function or in a script. (Without arguments du defaults to . )