Wie der Name schon sagt ist es ein temporärer Index, der nach Abschluss der Abfrage (Close Cursor) wieder gelöscht wird.
12 Minuten für 2Mio Sätze zeigt nur, wie schnell die Maschine ist. Es kann auch schon mal länger als 1 Stunde dauern.
Hierfür ist dann das QueryTimeout sinnvoll, um den Query abzubrechen, falls er zu lange dauert. Leider schlägt dann aber manchmal der Optimizer quer, der Zeiten um Faktoren falsch einschätzt.