Das O.K., eine Spitze so erhalten bohrte und entschied, mehrerees hundert tausend Reihen einem Tabelle hinzuzufügen.
Nicht zu sure von der Verteilung von Werten über der Strecke der Kategorien, transactioncodes und Daten, bildete sie so recht sogar während der Strecke der Daten.
Dann versuchte ein halbes Dutzend verschiedene Ansätze und analysiert den Daten/die Tabellenstrukturen.
Die einzigartige Identität anzunehmen war ein gesammelter Primärschlüssel (yeah grosse Annahme), vorschlagen, den folowwing Index zu verursachen:
NONCLUSTERED INDEX [idx_my_table_trans_cat_id] AN VERURSACHEN [dbo]. [my_table]
(
[transactioncode] ASC,
[Kategorie] ASC,
[unique_id] ASC
)
EINSCHLIESSEN ([Datum])
MIT (SORT_IN_TEMPDB = WEG, IGNORE_DUP_KEY = WEG, DROP_EXISTING = WEG, ONLINE = AUS)
und dann die Frage:
; mit cte2 wie
(
auserwähltes a.unique_id, a.category, a.date, (auserwählte Minute (unique_id) von my_table c wo c.unique_id > a.unique_id) als next_unique_id
von my_table a
wo a.transactioncode = „A“
)
vorwählen *
von cte2 a
inner my_table b auf verbinden a.next_unique_id = b.unique_id und a.category = b.category und b.transactioncode = „R“
wo datediff (d, a.date, b.date) = 1
scheint, using den Bedeckungindex wirklich gut zu arbeiten, ohne zu den rohen Daten zurück zu gehen…
Aber andererseits gibt es einige Annahmen (als pro vorherige Aufgabe außerdem) und wirklich muss aufgeräumt werden, obwohl, recht glücklich mit den Resultaten, die bis jetzt jene Annahmen gegeben.