Sybase NNTP forums - End Of Life (EOL)

The NNTP forums from Sybase - forums.sybase.com - are now closed.

All new questions should be directed to the appropriate forum at the SAP Community Network (SCN).

Individual products have links to the respective forums on SCN, or you can go to SCN and search for your product in the search box (upper right corner) to find your specific developer center.

Verewndung von Indizes - unterschiede zwischen 5.5 und 9.01

5 posts in iAnywhere General Discussion (German) Last posting was on 2005-02-17 08:42:41.0Z
Thomas Posted on 2005-02-14 15:07:53.0Z
From: "Thomas" <tauer@kues.de>
Newsgroups: ianywhere.public.german.general
Subject: Verewndung von Indizes - unterschiede zwischen 5.5 und 9.01
Lines: 55
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: 193.158.78.10
X-Original-NNTP-Posting-Host: 193.158.78.10
Message-ID: <4210bec9$1@forums-1-dub>
Date: 14 Feb 2005 07:07:53 -0800
X-Trace: forums-1-dub 1108393673 193.158.78.10 (14 Feb 2005 07:07:53 -0800)
X-Original-Trace: 14 Feb 2005 07:07:53 -0800, 193.158.78.10
X-Authenticated-User: pylonanywhere
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:24
Article PK: 902

Hallo,

wir verwenden zur Zeit auf unserem "Produktionsserver" noch SQL Anywhere
5.5.05.
Wir planen gerade die Umstellung zur Version ASA 9.01 und dabei tritt
folgendes Problem auf:

Wenn eine Tabelle einen Index über eine Spalte hat und in der Spalte häufig
NULL drin steht, verwendet die 5.5 den entsprechenden Index, die 9.01 aber
nicht.

Konkretes Beispiel:
Tabelle mit mehreren Mio Datensätzen:
------------------
CREATE TABLE "NUMMERNVERWALTUNG"
(
"NUMMER" char(10) NOT NULL,
"LIZENZNEHMER" Lizenznehmer,
"DATUMAUSGABE" date NULL,
"ART" smallint NULL,
"GESPEICHERT" timestamp NULL,
"GEAENDERT" timestamp NULL,
"DBID" char(30) NULL,
"DFUK" DFU NULL DEFAULT 0,
"DFUL" DFU,
"DatumDfuL" datetime NULL,
"DatumDfuK" datetime NULL,
PRIMARY KEY ("NUMMER")
)
go



CREATE INDEX "INummernverwaltungVergabe" ON "NUMMERNVERWALTUNG"
(
"ART" ASC,
"LIZENZNEHMER" ASC,
"DBID" ASC,
"NUMMER" ASC
)
go
------------------

Folgendes Statement geht in der Version 5.5 noch "schnell", da der Index
verwendet wird, in der 9.0 wird sequenziell durch die Tabelle gesucht. Der
Plan und der Indexberater konnten mir bisher nicht helfen.

select Min(Nummer) from nummernverwaltung where Art=InArt and Lizenznehmer
is null and DBID is null;

Wer kann mir helfen ?

Thomas Auer


Mike Darabos Posted on 2005-02-15 14:59:31.0Z
From: "Mike Darabos" <mdarabos@ianywhere.com>
Newsgroups: ianywhere.public.german.general
References: <4210bec9$1@forums-1-dub>
Subject: Re: Verewndung von Indizes - unterschiede zwischen 5.5 und 9.01
Lines: 72
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
X-Original-NNTP-Posting-Host: vpn-uk-035.sybase.com
Message-ID: <42120e4f@forums-2-dub>
X-Original-Trace: 15 Feb 2005 06:59:27 -0800, vpn-uk-035.sybase.com
X-Original-NNTP-Posting-Host: forums-2-dub.sybase.com
X-Original-Trace: 15 Feb 2005 06:59:28 -0800, forums-2-dub.sybase.com
NNTP-Posting-Host: forums-master.sybase.com
X-Original-NNTP-Posting-Host: forums-master.sybase.com
Date: 15 Feb 2005 06:59:31 -0800
X-Trace: forums-1-dub 1108479571 10.22.108.75 (15 Feb 2005 06:59:31 -0800)
X-Original-Trace: 15 Feb 2005 06:59:31 -0800, forums-master.sybase.com
X-Authenticated-User: ngsysop
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:28
Article PK: 906

Hallo Thomas,

kannst du bitte mir die Build Nummer noch mitteilen.

Gruss

Mike Darabos
iAnywhere Solutions / a Sybase Company
-----------------------------------------------
Visit the iAnywhere Solutions Developer Community
Whitepapers, TechDocs, Downloads
http://www.ianywhere.com/developer/

"Thomas" <tauer@kues.de> wrote in message news:4210bec9$1@forums-1-dub...
> Hallo,
>
> wir verwenden zur Zeit auf unserem "Produktionsserver" noch SQL Anywhere
> 5.5.05.
> Wir planen gerade die Umstellung zur Version ASA 9.01 und dabei tritt
> folgendes Problem auf:
>
> Wenn eine Tabelle einen Index über eine Spalte hat und in der Spalte
häufig
> NULL drin steht, verwendet die 5.5 den entsprechenden Index, die 9.01 aber
> nicht.
>
> Konkretes Beispiel:
> Tabelle mit mehreren Mio Datensätzen:
> ------------------
> CREATE TABLE "NUMMERNVERWALTUNG"
> (
> "NUMMER" char(10) NOT NULL,
> "LIZENZNEHMER" Lizenznehmer,
> "DATUMAUSGABE" date NULL,
> "ART" smallint NULL,
> "GESPEICHERT" timestamp NULL,
> "GEAENDERT" timestamp NULL,
> "DBID" char(30) NULL,
> "DFUK" DFU NULL DEFAULT 0,
> "DFUL" DFU,
> "DatumDfuL" datetime NULL,
> "DatumDfuK" datetime NULL,
> PRIMARY KEY ("NUMMER")
> )
> go
>
>
>
> CREATE INDEX "INummernverwaltungVergabe" ON "NUMMERNVERWALTUNG"
> (
> "ART" ASC,
> "LIZENZNEHMER" ASC,
> "DBID" ASC,
> "NUMMER" ASC
> )
> go
> ------------------
>
> Folgendes Statement geht in der Version 5.5 noch "schnell", da der Index
> verwendet wird, in der 9.0 wird sequenziell durch die Tabelle gesucht. Der
> Plan und der Indexberater konnten mir bisher nicht helfen.
>
> select Min(Nummer) from nummernverwaltung where Art=InArt and Lizenznehmer
> is null and DBID is null;
>
> Wer kann mir helfen ?
>
> Thomas Auer
>
>


Thomas Posted on 2005-02-16 08:59:07.0Z
From: "Thomas" <tauer@kues.de>
Newsgroups: ianywhere.public.german.general
References: <4210bec9$1@forums-1-dub> <42120e4f@forums-2-dub>
Subject: Re: Verewndung von Indizes - unterschiede zwischen 5.5 und 9.01
Lines: 86
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: 193.158.78.10
X-Original-NNTP-Posting-Host: 193.158.78.10
Message-ID: <42130b5b$1@forums-1-dub>
Date: 16 Feb 2005 00:59:07 -0800
X-Trace: forums-1-dub 1108544347 193.158.78.10 (16 Feb 2005 00:59:07 -0800)
X-Original-Trace: 16 Feb 2005 00:59:07 -0800, 193.158.78.10
X-Authenticated-User: pylonanywhere
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:30
Article PK: 905

Ja klar: (danke für die schnelle Reaktion)

Adaptive Server Anywhere Network Server Version 9.0.1.1862

Thomas


"Mike Darabos" <mdarabos@ianywhere.com> schrieb im Newsbeitrag
news:42120e4f@forums-2-dub...

> Hallo Thomas,
>
> kannst du bitte mir die Build Nummer noch mitteilen.
>
> Gruss
>
> Mike Darabos
> iAnywhere Solutions / a Sybase Company
> -----------------------------------------------
> Visit the iAnywhere Solutions Developer Community
> Whitepapers, TechDocs, Downloads
> http://www.ianywhere.com/developer/
>
> "Thomas" <tauer@kues.de> wrote in message news:4210bec9$1@forums-1-dub...
>> Hallo,
>>
>> wir verwenden zur Zeit auf unserem "Produktionsserver" noch SQL Anywhere
>> 5.5.05.
>> Wir planen gerade die Umstellung zur Version ASA 9.01 und dabei tritt
>> folgendes Problem auf:
>>
>> Wenn eine Tabelle einen Index über eine Spalte hat und in der Spalte
> häufig
>> NULL drin steht, verwendet die 5.5 den entsprechenden Index, die 9.01
>> aber
>> nicht.
>>
>> Konkretes Beispiel:
>> Tabelle mit mehreren Mio Datensätzen:
>> ------------------
>> CREATE TABLE "NUMMERNVERWALTUNG"
>> (
>> "NUMMER" char(10) NOT NULL,
>> "LIZENZNEHMER" Lizenznehmer,
>> "DATUMAUSGABE" date NULL,
>> "ART" smallint NULL,
>> "GESPEICHERT" timestamp NULL,
>> "GEAENDERT" timestamp NULL,
>> "DBID" char(30) NULL,
>> "DFUK" DFU NULL DEFAULT 0,
>> "DFUL" DFU,
>> "DatumDfuL" datetime NULL,
>> "DatumDfuK" datetime NULL,
>> PRIMARY KEY ("NUMMER")
>> )
>> go
>>
>>
>>
>> CREATE INDEX "INummernverwaltungVergabe" ON "NUMMERNVERWALTUNG"
>> (
>> "ART" ASC,
>> "LIZENZNEHMER" ASC,
>> "DBID" ASC,
>> "NUMMER" ASC
>> )
>> go
>> ------------------
>>
>> Folgendes Statement geht in der Version 5.5 noch "schnell", da der Index
>> verwendet wird, in der 9.0 wird sequenziell durch die Tabelle gesucht.
>> Der
>> Plan und der Indexberater konnten mir bisher nicht helfen.
>>
>> select Min(Nummer) from nummernverwaltung where Art=InArt and
>> Lizenznehmer
>> is null and DBID is null;
>>
>> Wer kann mir helfen ?
>>
>> Thomas Auer
>>
>>
>
>


"Markus Hofer" Posted on 2005-02-16 14:18:26.0Z
Reply-To: "Markus Hofer" <mh[(at)]smartsol.ch>
From: "Markus Hofer" <mh[(at)]smartsol.ch>
Newsgroups: ianywhere.public.german.general
References: <4210bec9$1@forums-1-dub> <42120e4f@forums-2-dub> <42130b5b$1@forums-1-dub>
Subject: Re: Verewndung von Indizes - unterschiede zwischen 5.5 und 9.01
Lines: 128
Organization: Smart Solutions AG
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
NNTP-Posting-Host: 212.4.66.217
X-Original-NNTP-Posting-Host: 212.4.66.217
Message-ID: <42135632$1@forums-1-dub>
Date: 16 Feb 2005 06:18:26 -0800
X-Trace: forums-1-dub 1108563506 212.4.66.217 (16 Feb 2005 06:18:26 -0800)
X-Original-Trace: 16 Feb 2005 06:18:26 -0800, 212.4.66.217
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:31
Article PK: 908

Hallo Thomas

Seit Version 5.5 hat sich im Optimizer des ASA vieles geändert und die
Applikationen müssen oft neu "getunet" werden, damit die Performance wieder
optimal wird. Dazu müssen sehr oft einige Versuche im ISQL gemacht werden.
Unten einfach ein paar Vorschläge zum ausprobieren.

Aenderungen können sowohl auf der Seite der Applikation (Umformulieren des
SQL-Query), wie auch auf der Seite des Datenmodells gemacht werden. Es
stellt sich daher die Frage, ob Du an der Applikation überhaupt etwas ändern
kannst!? Wenn nicht kann Vorschlag 1. nicht gebraucht werden.

1. Arbeiten mit Optimizer Hint: Der FROM-clause kann mit einem Hinweis für
den Optimizer "FORCE INDEX(index name)" erweitert werden.
2. Bestehenden Index auftrennen in zwei Indices: Erster Index nur über die
im WHERE-Clause verwendeten Kolonnen (Art, Lizenznehmer, DBID ). Zweiter
Index nur über Feld NUMMER.
3. Manchmal gibts auch Bugs im Optimizer; dann hilft oft ein Update auf den
neusten EBF.


Markus Hofer

---------------------------------------------------
Markus Hofer, dipl. Ing. ETH
Geschäftsführender Partner
Smart Solutions AG, Baarerstr.98, 6302 Zug, Schweiz
http://www.smart-solutions.ch
---------------------------------------------------

"Thomas" <tauer@kues.de> wrote in message news:42130b5b$1@forums-1-dub...
> Ja klar: (danke für die schnelle Reaktion)
>
> Adaptive Server Anywhere Network Server Version 9.0.1.1862
>
> Thomas
>
>
> "Mike Darabos" <mdarabos@ianywhere.com> schrieb im Newsbeitrag
> news:42120e4f@forums-2-dub...
> > Hallo Thomas,
> >
> > kannst du bitte mir die Build Nummer noch mitteilen.
> >
> > Gruss
> >
> > Mike Darabos
> > iAnywhere Solutions / a Sybase Company
> > -----------------------------------------------
> > Visit the iAnywhere Solutions Developer Community
> > Whitepapers, TechDocs, Downloads
> > http://www.ianywhere.com/developer/
> >
> > "Thomas" <tauer@kues.de> wrote in message
news:4210bec9$1@forums-1-dub...
> >> Hallo,
> >>
> >> wir verwenden zur Zeit auf unserem "Produktionsserver" noch SQL
Anywhere
> >> 5.5.05.
> >> Wir planen gerade die Umstellung zur Version ASA 9.01 und dabei tritt
> >> folgendes Problem auf:
> >>
> >> Wenn eine Tabelle einen Index über eine Spalte hat und in der Spalte
> > häufig
> >> NULL drin steht, verwendet die 5.5 den entsprechenden Index, die 9.01
> >> aber
> >> nicht.
> >>
> >> Konkretes Beispiel:
> >> Tabelle mit mehreren Mio Datensätzen:
> >> ------------------
> >> CREATE TABLE "NUMMERNVERWALTUNG"
> >> (
> >> "NUMMER" char(10) NOT NULL,
> >> "LIZENZNEHMER" Lizenznehmer,
> >> "DATUMAUSGABE" date NULL,
> >> "ART" smallint NULL,
> >> "GESPEICHERT" timestamp NULL,
> >> "GEAENDERT" timestamp NULL,
> >> "DBID" char(30) NULL,
> >> "DFUK" DFU NULL DEFAULT 0,
> >> "DFUL" DFU,
> >> "DatumDfuL" datetime NULL,
> >> "DatumDfuK" datetime NULL,
> >> PRIMARY KEY ("NUMMER")
> >> )
> >> go
> >>
> >>
> >>
> >> CREATE INDEX "INummernverwaltungVergabe" ON "NUMMERNVERWALTUNG"
> >> (
> >> "ART" ASC,
> >> "LIZENZNEHMER" ASC,
> >> "DBID" ASC,
> >> "NUMMER" ASC
> >> )
> >> go
> >> ------------------
> >>
> >> Folgendes Statement geht in der Version 5.5 noch "schnell", da der
Index
> >> verwendet wird, in der 9.0 wird sequenziell durch die Tabelle gesucht.
> >> Der
> >> Plan und der Indexberater konnten mir bisher nicht helfen.
> >>
> >> select Min(Nummer) from nummernverwaltung where Art=InArt and
> >> Lizenznehmer
> >> is null and DBID is null;
> >>
> >> Wer kann mir helfen ?
> >>
> >> Thomas Auer
> >>
> >>
> >
> >
>
>


Thomas Posted on 2005-02-17 08:42:41.0Z
From: "Thomas" <tauer@kues.de>
Newsgroups: ianywhere.public.german.general
References: <4210bec9$1@forums-1-dub> <42120e4f@forums-2-dub> <42130b5b$1@forums-1-dub> <42135632$1@forums-1-dub>
Subject: Re: Verewndung von Indizes - unterschiede zwischen 5.5 und 9.01
Lines: 148
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: 193.158.78.10
X-Original-NNTP-Posting-Host: 193.158.78.10
Message-ID: <42145901$1@forums-1-dub>
Date: 17 Feb 2005 00:42:41 -0800
X-Trace: forums-1-dub 1108629761 193.158.78.10 (17 Feb 2005 00:42:41 -0800)
X-Original-Trace: 17 Feb 2005 00:42:41 -0800, 193.158.78.10
X-Authenticated-User: pylonanywhere
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:33
Article PK: 909

Hallo Markus,

Ich dachte, ich kenne SQL Anywhere ganz gut, aber wohl nur nur bis zur
Version 5.5

Der Tipp mit dem "FORCE INDEX" hat super funktioniert.

Vielen Dank dafür !

Thomas Auer



"Markus Hofer" <mh[(at)]smartsol.ch> schrieb im Newsbeitrag
news:42135632$1@forums-1-dub...

> Hallo Thomas
>
> Seit Version 5.5 hat sich im Optimizer des ASA vieles geändert und die
> Applikationen müssen oft neu "getunet" werden, damit die Performance
> wieder
> optimal wird. Dazu müssen sehr oft einige Versuche im ISQL gemacht werden.
> Unten einfach ein paar Vorschläge zum ausprobieren.
>
> Aenderungen können sowohl auf der Seite der Applikation (Umformulieren des
> SQL-Query), wie auch auf der Seite des Datenmodells gemacht werden. Es
> stellt sich daher die Frage, ob Du an der Applikation überhaupt etwas
> ändern
> kannst!? Wenn nicht kann Vorschlag 1. nicht gebraucht werden.
>
> 1. Arbeiten mit Optimizer Hint: Der FROM-clause kann mit einem Hinweis für
> den Optimizer "FORCE INDEX(index name)" erweitert werden.
> 2. Bestehenden Index auftrennen in zwei Indices: Erster Index nur über die
> im WHERE-Clause verwendeten Kolonnen (Art, Lizenznehmer, DBID ). Zweiter
> Index nur über Feld NUMMER.
> 3. Manchmal gibts auch Bugs im Optimizer; dann hilft oft ein Update auf
> den
> neusten EBF.
>
>
> Markus Hofer
>
> ---------------------------------------------------
> Markus Hofer, dipl. Ing. ETH
> Geschäftsführender Partner
> Smart Solutions AG, Baarerstr.98, 6302 Zug, Schweiz
> http://www.smart-solutions.ch
> ---------------------------------------------------
>
>
>
>
>
>
>
> "Thomas" <tauer@kues.de> wrote in message news:42130b5b$1@forums-1-dub...
>> Ja klar: (danke für die schnelle Reaktion)
>>
>> Adaptive Server Anywhere Network Server Version 9.0.1.1862
>>
>> Thomas
>>
>>
>> "Mike Darabos" <mdarabos@ianywhere.com> schrieb im Newsbeitrag
>> news:42120e4f@forums-2-dub...
>> > Hallo Thomas,
>> >
>> > kannst du bitte mir die Build Nummer noch mitteilen.
>> >
>> > Gruss
>> >
>> > Mike Darabos
>> > iAnywhere Solutions / a Sybase Company
>> > -----------------------------------------------
>> > Visit the iAnywhere Solutions Developer Community
>> > Whitepapers, TechDocs, Downloads
>> > http://www.ianywhere.com/developer/
>> >
>> > "Thomas" <tauer@kues.de> wrote in message
> news:4210bec9$1@forums-1-dub...
>> >> Hallo,
>> >>
>> >> wir verwenden zur Zeit auf unserem "Produktionsserver" noch SQL
> Anywhere
>> >> 5.5.05.
>> >> Wir planen gerade die Umstellung zur Version ASA 9.01 und dabei tritt
>> >> folgendes Problem auf:
>> >>
>> >> Wenn eine Tabelle einen Index über eine Spalte hat und in der Spalte
>> > häufig
>> >> NULL drin steht, verwendet die 5.5 den entsprechenden Index, die 9.01
>> >> aber
>> >> nicht.
>> >>
>> >> Konkretes Beispiel:
>> >> Tabelle mit mehreren Mio Datensätzen:
>> >> ------------------
>> >> CREATE TABLE "NUMMERNVERWALTUNG"
>> >> (
>> >> "NUMMER" char(10) NOT NULL,
>> >> "LIZENZNEHMER" Lizenznehmer,
>> >> "DATUMAUSGABE" date NULL,
>> >> "ART" smallint NULL,
>> >> "GESPEICHERT" timestamp NULL,
>> >> "GEAENDERT" timestamp NULL,
>> >> "DBID" char(30) NULL,
>> >> "DFUK" DFU NULL DEFAULT 0,
>> >> "DFUL" DFU,
>> >> "DatumDfuL" datetime NULL,
>> >> "DatumDfuK" datetime NULL,
>> >> PRIMARY KEY ("NUMMER")
>> >> )
>> >> go
>> >>
>> >>
>> >>
>> >> CREATE INDEX "INummernverwaltungVergabe" ON "NUMMERNVERWALTUNG"
>> >> (
>> >> "ART" ASC,
>> >> "LIZENZNEHMER" ASC,
>> >> "DBID" ASC,
>> >> "NUMMER" ASC
>> >> )
>> >> go
>> >> ------------------
>> >>
>> >> Folgendes Statement geht in der Version 5.5 noch "schnell", da der
> Index
>> >> verwendet wird, in der 9.0 wird sequenziell durch die Tabelle gesucht.
>> >> Der
>> >> Plan und der Indexberater konnten mir bisher nicht helfen.
>> >>
>> >> select Min(Nummer) from nummernverwaltung where Art=InArt and
>> >> Lizenznehmer
>> >> is null and DBID is null;
>> >>
>> >> Wer kann mir helfen ?
>> >>
>> >> Thomas Auer
>> >>
>> >>
>> >
>> >
>>
>>
>
>