1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

SELECT * ... INNER JOIN sehr langsam

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von freshman, 4 Juli 2011.

  1. freshman

    freshman Datenbank-Guru

    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
     
  2. ukulele

    ukulele Datenbank-Guru

    Ich würde sagen wegen dem LIKE. Kannst du nicht = machen wenn es sich sowieso um eine Nummer handelt?
     
  3. freshman

    freshman Datenbank-Guru

    Danke,
    Nein, das sind TEXT - Felder... kann nämlich auch Alphanumerisch sein :-(
     
  4. ukulele

    ukulele Datenbank-Guru

    Wirklich TEXT oder VARCHAR / NVARCHAR ? TEXT ist natürlich extrem groß und extrem rechenaufwendig.
     
  5. freshman

    freshman Datenbank-Guru

    Text, ich schwör :)
     
  6. ukulele

    ukulele Datenbank-Guru

    Herzlichen Glückwunsch :)
     
  7. ukulele

    ukulele Datenbank-Guru

    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...
     
  8. freshman

    freshman Datenbank-Guru

    ups, nun kommt wieder der Laie in mir hoch... hab ich noch nie gemacht!!
    Hilfst mir ?? :)
    bin ja auch nen netter Kerl !!!!
    :)
     
  9. ukulele

    ukulele Datenbank-Guru

    Puh, ist immer aufwendig. Wie lang ist denn der längste Eintrag in der TEXT Spalte?
    Sind es in beiden Tabellen TEXT Felder?
     
  10. freshman

    freshman Datenbank-Guru

    8 Zeichen
    hab gerade mal so ein bischen nach Trigger gegoogelt.. und schlauer bin ich nun auch nicht :-(
     
  11. ukulele

    ukulele Datenbank-Guru

    Sind es in beiden Tabellen TEXT Felder?
     
  12. freshman

    freshman Datenbank-Guru

  13. ukulele

    ukulele Datenbank-Guru

    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.
     
  14. freshman

    freshman Datenbank-Guru

    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
     
  15. freshman

    freshman Datenbank-Guru

    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
     

Diese Seite empfehlen