AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird - Temporärer Index
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird - Temporärer Index

Ein Thema von lxo · begonnen am 19. Jun 2023 · letzter Beitrag vom 21. Jun 2023
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Firebird - Temporärer Index

  Alt 20. Jun 2023, 10:29
Du kannst es vllt in eine temporäre Tabelle (deren Inhalt nur für eine Transaction oder Connection sichtbar ist) reinschrieben, die den Index hat, den Du brauchst
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
701 Beiträge
 
Delphi 12 Athens
 
#12

AW: Firebird - Temporärer Index

  Alt 20. Jun 2023, 10:57
Wie kann man denn für eine View einen Index erstellen?
Ich muss gestehen dass ich nur mit Oracle Erfahrung habe und das ist auch schon etliche Jahr her. Oracle hat sog. "materialized views" auf denen man auch Indizes anlegen kann wenn mich mein Vergessnis nicht täuscht.
Peter Below
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#13

AW: Firebird - Temporärer Index

  Alt 20. Jun 2023, 12:00
Ich mach den Index jetzt einfach generell rein und fertig.
Andere Statements leiden darunter nicht und auch Massen-Inserts sind nicht langsamer. Also schadet der nicht und für meine Procedure hilft er ungemein.
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Firebird - Temporärer Index

  Alt 20. Jun 2023, 13:10
Wie kann man denn für eine View einen Index erstellen?
Ich muss gestehen dass ich nur mit Oracle Erfahrung habe und das ist auch schon etliche Jahr her. Oracle hat sog. "materialized views" auf denen man auch Indizes anlegen kann wenn mich mein Vergessnis nicht täuscht.
Eine View in Firebird hat keine Indizes.
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.890 Beiträge
 
Delphi 12 Athens
 
#15

AW: Firebird - Temporärer Index

  Alt 20. Jun 2023, 18:12
Ich mach den Index jetzt einfach generell rein und fertig.
Andere Statements leiden darunter nicht und auch Massen-Inserts sind nicht langsamer. Also schadet der nicht und für meine Procedure hilft er ungemein.
Das ist nach meiner Meinung nach auch die einzig sinnvolle Lösung.
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#16

AW: Firebird - Temporärer Index

  Alt 20. Jun 2023, 20:10
Normalerweise kostet ein Index nicht so viel, dass sich weitere Optimierung lohnen würde.
Aber wenn wenige bestimmte Datensätze eine besonderer Bedeutung haben, kann man sich z.B. als Ersatz für ein Boolean-Feld auch eine Hilfstabelle anlegen, die nur die ID dieser Datensätze enthält.
Die kann z.B. einfach durch einen Trigger gefüllt werden, wenn Datensätze eingefügt oder geändert werden.
Eine View stellt das Ergebnis einer Abfrage auf die Hilfstabelle mit Left-Join zur Haupttabelle dar.
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
672 Beiträge
 
FreePascal / Lazarus
 
#17

AW: Firebird - Temporärer Index

  Alt 21. Jun 2023, 10:40
kosten vom zusätzlichen index entstehen nur beim schreiben der datensätze via insert/update/delete, wenn da also nicht endlos drauf geschrieben wird, ist der mehraufwand vernachlässigbar. soll aber nicht heissen, das man bei einer tabelle mit 100 feldern einfach mal auf verdacht 100 einzelfeld indizes ascending und zur sicherheit noch 100 einzelfeld indizes descending anlegt. das wird man auf jeden fall merken und ist offensichtlicher mumpitz.

Index auf views gibt es nicht, wurde hier aber ja auch schon korrekt erkannt.

wenn es sinnvoll ist, kann man sich in der ibexpert demo db mal anschauen, wie man eine materialized view nachbilden kann (ist in der datenbank als V_TOP100SALES eingebaut), dessen daten zB großen datenmenge zusammenfassen, der aber schreibend nur on demand maximal ein mal pro minute neu berechnet wird, hatte ich auch in unseren ibexpertise youtube stammtisch videos mal erklärt.

Das oracle konzept des materialized views hatte einen kunden schon mal wegen der einstellung on commit statt on demand in extreme probleme gebracht (die hatte den view deklariert, wir haben da nur jede nacht ca 10000 inserts/updates/deletes gemacht die von einer firebird db kamen und aufgrund der langen leitung zum oracle server sehr oft committed werden mussten, war mit odbc und ibescript zwischen firebird und oracle ganz einfach, bis irgendjemand von denen da ein halbes jahr später den view angelegt hatte, der dann parallel 10000 neuberechnungen ausgelöst hatte und morgens stundenlang keiner mehr arbeiten konnte. da wir nur nachts daten senden, hatte der damit tagsüber noch kein problem ....

Index aktivieren/deaktivieren geht zwar, frisst während dieser zeit zum aktivieren aber sehr viel I/O Last und je nach fb version und hardware kann das eine doofe idee sein

meine tip wie schon von dir gewählt weg: leg den index an und lass den an, wen störts ...
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz