I've looked over various SQL procedures that loads products/categories and I've found that most of them use SQL temporary tables. Since table variables are more performant than temporary tables I suggest that you rewrite SQL code in order to perform faster.
Here are some key points that can help us to decide which of two to use:
•If you have less than 100 rows generally use a table variable. Otherwise use a temporary table. This is because SQL Server won't create statistics on table variables.
•If you need to create indexes on it then you must use a temporary table.
•When using temporary tables always create them and create any indexes and then use them. This will help reduce recompilations. The impact of this is reduced starting in SQL Server 2005 but it's still a good idea.
Thanks