I will need to insert some rows in an empty temp table. The table has PK of (month date, id char(10)). The source table is partitioned by `month`. Which of the following is faster?

**1a) the target table has clustered PK pre-created.**

```
create table #t (month date not null, id char(10) not null, ...... primary key (month, id))
  with (data_compression = page)
insert into #t select .... from t -- partitioned by month, maybe millions of rows
where ......

```

**1b) Same as (1a). But the insert will try to sort the data first.**

```
create table #t (month date not null, id char(10) not null, ...... primary key (month, id))
  with (data_compression = page)
insert into #t select .... from t -- partitioned by month, maybe millions of rows
where ......
order by month, id

```

**2) Insert into a heap, then add a clustered PK**

```
create table #t (month date not null, id char(10) not null, ...... )
  with (data_compression = page) -- should or should not?
insert into #t select .... from t -- partitioned by month, maybe millions of rows
where ......
alter table #t add primary key (month, id) with (data_compression = page)

```

Will (2) recreate the table `#t` internally?