I have an SQL Server 2005 database, and I tried putting indexes on the appropriate fields in order to speed up the DELETE of records from a table with millions
DELETE
You can also try TSQL extension to DELETE syntax and check whether it improves performance:
DELETE FROM big_table FROM big_table AS b INNER JOIN small_table AS s ON (s.id_product = b.id_product) WHERE s.id_category =1