This SQL query lets you know the list of custom portlets that are not-instantiated (that has no entry in portlet preferences table).
(I wrote this query for a MS SQL DB, if you want to use it for another DB there are a few changes to make)
It only checks for portlet ids that are not numbers (to exclude Liferay portlets).
This query is based on the fact that if a portlet is used, it has an entry in table
You can have the list of portlets that are instantiated by changing the last line of the query from