SELECT * ... INNER JOIN sehr langsam

Werbung:
mmmhhhhh.. Hintergrund ist, ich habe beide Tabellen durch Import einer csv Datei erstellt.
Jede Tabelle = eigene csv Datei
Da war dann nichts mit Primärschlüssel....
und nün?
Merke schon, lerne gerade ne Menge!!
:-)
 
Nunja, selbst wenns nicht als PK angelegt ist so solte es eine Spalte mit einer künstlichen, eindeutigen Nummer geben anhand der der Datensatz wiederauffindbar ist. Wenn ich wüsste welche das ist wäre mir geholfen.
 
*Würg* Alles klar...

(Ich hoffe das sind wirklich nur Testdaten, ansonsten vorher sichern!!!)
Probiers mal hiermit:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [dbo].[toller_trigger1]
ON [dbo].[ITest]
AFTER INSERT, UPDATE
AS
IF UPDATE(TSTNR1)
AND ( SELECT TSTNR1_varchar
FROM INSERTED ) IS NULL
BEGIN
SET NOCOUNT ON;

DECLARE @TSTNR1 TEXT,
@TSTNR1_varchar VARCHAR(8)

SELECT @TSTNR1 = TSTNR1
FROM INSERTED

SET @TSTNR1_varchar = cast(@TSTNR1 AS VARCHAR(8))

UPDATE ITest
SET TSTNR1_varchar = @TSTNR1_varchar
WHERE TSTNR1 = @TSTNR1
END
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [dbo].[toller_trigger2]
ON [dbo].[ArtNr]
AFTER INSERT, UPDATE
AS
IF UPDATE(Artikelnummer)
AND ( SELECT Artikelnummer_varchar
FROM INSERTED ) IS NULL
BEGIN
SET NOCOUNT ON;

DECLARE @Artikelnummer TEXT
DECLARE @Artikelnummer_varchar VARCHAR(8)

SELECT @Artikelnummer = Artikelnummer
FROM INSERTED

SET @Artikelnummer_varchar = cast(@Artikelnummer AS VARCHAR(8))

UPDATE ArtNr
SET Artikelnummer_varchar = @Artikelnummer_varchar
WHERE Artikelnummer = @Artikelnummer
END
GO
 
Och ne da bekomm ich auch nen Fehler weil TEXT und Trigger sich nicht mögen. Wer zur Hölle nimmt TEXT als Spalte für Artikelnummern?

Bleibt nur noch:
a) Daten konvertieren und ne VARCHAR Spalte drauß machen
b) Eventuell ist das schon schneller:
SELECT * FROM StListTest.dbo.ITest INNER JOIN StListTest.dbo.ArtNr
ON cast(ITest.TSTNR1 AS varchar(8)) = cast(ArtNr.Artikelnummer as varchar(8))
c) Eine Sicht auf die Daten ähnlich SELECT cast(Artikelnummer AS VARCHAR(8)) AS Artikelnummer FROM ArtNr und diese in die Abfrage einbauen

Sry ansonsten weiss ich auf die schnelle auch nicht weiter. Wenn du so gar keine Erfahrung hast, solltest du dich vieleicht mal an den Verrusacher wenden was die Datenhaltung angeht^^
 
Werbung:
mit dem hab ich schon gemeckert... waren vorher schon ein paar Stolperstellen, gerade auch beim Import... aber die konnte ich noch selber lösen..
Danke Dir!!!
Gibst Dir wirklich große Mühe!!
MERCI
 
Zurück
Oben