First, clean up your query - you have an unnecessary view in your from clause (cartesian join on dba_cons_columns in the outer query) and the joins are incomplete (don't you want to join on table owner?). select a.table_name, a.column_name from dba_tab_columns a, dba_tab_columns b where a.owner = '&owner' and b.owner = a.owner -- (?) I imagine you want this condition and a.column_name like '%' || b.column_name || '%' and a.column_name != b.column_name -- does the b column have to be in a different table than the a column? -- and b.table_name != a.table_name and not exists (select null from dba_cons_columns c where c.owner = b.owner and c.table_name = b.table_name and c.column_name = b.column_name) ; -----Original Message----- Thomas Day I'm trying to find all the columns, in tables owned by a given schema, where the column name is like any other column name but not a constrained column. It takes forever. Any ideas on how to speed this up? It's Oracle 9.2. select /* FIRST ROW */ UNIQUE a.table_name, a.column_name from dba_tab_columns a, dba_tab_columns b, dba_cons_columns c where a.column_name like '''%'||b.column_name||'%''' and a.column_name not in (select /* RULE */ c.column_name from dba_cons_columns c) AND A.COLUMN_NAME != B.COLUMN_NAME and a.owner = 'owner' / ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------