SELECT * ... INNER JOIN sehr langsam

freshman

SQL-Guru
Beiträge
100
Hallo Gemeinde,
ich mach über 2 Tabellen eine Abfrage:
SELECT * FROM StListTest.dbo.ITest INNER JOIN StListTest.dbo.ArtNr
ON ITest.TSTNR1 LIKE ArtNr.Artikelnummer

In Tabelle ITest sind ca 315000 Artikel, 41 Spalten.
Tabelle ArtNr hat ca. 114000 Art Nr, eine Spalte

Warum ist meine Abfrage sooo langsam, ca 5000 Artikel in 110 Minuten?

Danke für Info

freshman
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.702
Ich würde sagen wegen dem LIKE. Kannst du nicht = machen wenn es sich sowieso um eine Nummer handelt?
 

ukulele

Datenbank-Guru
Beiträge
4.702
Wenn sich das nicht ändern lässt was ja auch immer zu Datenverlust führen kann kannste dir ja einen Trigger basteln der eine Hilfsspalte befüllt und da mit VARCHAR arbeiten und vergleichen...
 

ukulele

Datenbank-Guru
Beiträge
4.702
Puh, ist immer aufwendig. Wie lang ist denn der längste Eintrag in der TEXT Spalte?
Sind es in beiden Tabellen TEXT Felder?
 

ukulele

Datenbank-Guru
Beiträge
4.702
Geh mal bitte über SQL Management Studio auf die beiden Tabelle und lass dir jeweils über Rechtsklick/Script als create in.../neues Abfragefenster ein Script erstellen und poste das.
 

freshman

SQL-Guru
Beiträge
100
Tabelle ITest
USE [StListTest]
GO

/****** Object: Table [dbo].[ITest] Script Date: 07/04/2011 16:42:48 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[ITest](
[TSTNR1] [text] NULL,
[FIRMA] [nvarchar](255) NULL,
[BEZEI1-Komp] [text] NULL,
[BEZEI2] [nvarchar](255) NULL,
[KURZBE] [nvarchar](255) NULL,
[TEIART] [nvarchar](255) NULL,
[MATGRU] [nvarchar](255) NULL,
[TS11T] [nvarchar](255) NULL,
[ZEICHN] [nvarchar](255) NULL,
[ZEIFOR] [nvarchar](255) NULL,
[BESART] [nvarchar](255) NULL,
[Text] [text] NULL,
[2004] [ntext] NULL,
[Mengeneinh 2004] [ntext] NULL,
[2005] [ntext] NULL,
[Mengeneinh 2005] [ntext] NULL,
[2006] [ntext] NULL,
[Mengeneinh 2006] [ntext] NULL,
[2007] [ntext] NULL,
[Mengeneinh 2007] [ntext] NULL,
[2008] [ntext] NULL,
[Mengeneinh 2008] [ntext] NULL,
[2009] [ntext] NULL,
[Mengeneinh 2009] [ntext] NULL,
[2010] [ntext] NULL,
[Mengeneinh 2010] [ntext] NULL,
[Artikel-Status] [nvarchar](255) NULL,
[Klassifikation] [nvarchar](255) NULL,
[Datum-Erstellung] [nvarchar](255) NULL,
[Erfassung-SB] [nvarchar](255) NULL,
[Datum-Änderung] [nvarchar](255) NULL,
[Änderung-SB] [nvarchar](255) NULL,
[Datum-Freigabe] [nvarchar](255) NULL,
[Freigabe-SB] [nvarchar](255) NULL,
[VK-Artikel] [nvarchar](255) NULL,
[Nachfolgeteil] [nvarchar](255) NULL,
[Vorläuferteil] [nvarchar](255) NULL,
[Produkt-Linie] [nvarchar](255) NULL,
[Produkt-Klasse] [nvarchar](255) NULL,
[Vertriebsbereich] [nvarchar](255) NULL,
[Statistik-Nr] [nvarchar](255) NULL,
[Arbeitsplan] [nvarchar](255) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
 
Werbung:

freshman

SQL-Guru
Beiträge
100
Tabelle ArtNr

USE [StListTest]
GO

/****** Object: Table [dbo].[ArtNr] Script Date: 07/04/2011 16:47:07 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[ArtNr](
[Artikelnummer] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
 
Oben