Ich habe zwei Tabellen FACT_SALE
und DIM_PRODUCT
, die sowohl die Produktnamen als gemeinsam haben, und ich wollte die DIM_PRODUCT
‚s-ID als Fremdschlüssel einzustellen. DIM_PRODUCT
wird mit den eindeutigen Namenwerten der Tabelle FACT_SALE
erstellt.Mitglied wird und Update zu lange dauern
UPDATE FACT_SALE FS
JOIN DIM_PRODUCT DP ON FS.PRODUCT_NAME = DP.NAME
SET FS.PRODUCT_KEY = DP.ID
Diese Abfrage, die ich geschrieben habe, läuft für immer und keine Änderungen werden auch in der DB reflektiert. Es gibt nur einhunderttausend Datensätze (100 000) in der FACT_SALE table
. Aber wenn ich eine Select-Abfrage mit Joining zwei Tabelle ausführen, läuft es blitzschnell.
Kann ich wissen, was die Ursache für dieses Problem ist?
Ihre Join-Bedingung ist im Textfeld, und ich vermute, dass dieses Feld nicht indiziert ist, Hinzufügen Index zum Feldnamen könnte viel schneller, so nur eine Test-Backup-Datenbank dann Index zu den Feldern hinzufügen FS.PRODUCT_NAME und DP.NAME testet dann Ihr Update. –