When I run the “Top disk usage by table” report in Sql Server Management Studio, it shows one of my tables using about 1.8GB of disk space:

The table definition:
CREATE TABLE [dbo].[RecipeItems](
[wo_id] [varchar](50) NOT NULL,
[invent_id] [varchar](50) NOT NULL,
[invent_dim_id] [varchar](50) NULL,
[ratio] [float] NOT NULL
) ON [PRIMARY]
I’d roughly estimate that with each row takes less than 200 bytes, and with only 7K records, this shouldn’t take up more than 1-2MB. But obviously, this is not the case. What might be the reason this table uses so much storage?
Chances are that a lot of data has been updated or deleted. Since it is a heap updates can lead to forwarding records. I would try this first:
Next I would consider adding a clustered index.
Do not run a shrink database command to fix this table, PLEASE.
When you perform your “delete all and bulk insert” I would do it this way, running a rebuild in the middle:
If you add a clustered index you may want to do this a little differently. And if you can’t use TRUNCATE, keep using DELETE, obviously. TRUNCATE will cause less log churn if the table is eligible, and since you are wiping out the table and re-populating it, it’s not something you seem to need to recover from. In fact you might just consider dropping the table and re-creating it each time.