Query to get data from 2 different tables is taking long time I have this query,

select Column1,Column2, etc..
from Db1.dbo.Tb1 b Where b.Id1 in (
    select distinct Column3 as Id1 from Db2.dbo.Tb2 s where s.Id2 &lt;&gt; ''
    union
    select distinct Column4 as Id1 from Db2.dbo.Tb2 s where s.Id2 &lt;&gt; ''
)


It's taking more then 10 minutes and still processing on a good spec database.

I can't change existing DB or add indexes, Is there anyway I could improve this query ?

It's getting data 2 columns from a table and then based on results getting data from another database's table.
Rewrite your query such a way:

SELECT Column1, 
       Column2,
       etc..
FROM Db1.dbo.Tb1 b
WHERE EXISTS (
        SELECT TOP (1) 1
        FROM Db2.dbo.Tb2 s
        WHERE s.Id2 &lt;&gt; ''
            AND b.Id1 IN (s.Column3, s.Column4)
    )