Hallo!
Immer wieder hört man, dass es sehr kostspielig sei, eine Datenbankverbindung aufzubauen.
Ich frage mich allerdings, was daran wirklich so kostspielig ist.
Hier steht beispielsweise:
"Database connections are often expensive to create because of the overhead of establishing a network connection and initializing a database connection session in the back end database. In turn, connection session initialization often requires time consuming processing to perform user authentication, establish transactional contexts and establish other aspects of the session that are required for subsequent database usage."
Also 2 Sachen sind demnach aufwendig:
1. Aufbau der Verbindung, also TCP-Verbindung z.B.
2. Initialisierung einer Session z.B. Authentifizierung, das mit Transaction Context versteh ich eigentlich nicht, wird der nicht erst aufgebaut, wenn man wirklich eine Anweisung abschießt?
OK. Der erste Punkt kann nicht so wahnsinnig teuer sein, schließlich hat man das gleiche auch bei jeder Anfrage eines Browsers an einen Webserver. Für den Aufbau der TCP-Verbindung brauche ich 3 Meldungen, three-way-Handshake, die hin- und hergehen.
Und was ist an dem 2. Punkt hinsichtlich der Übertragungen so aufwendig?
Wieviele Meldungen müssen denn für Authentifizierung hin- und hergehen?
Meiner Meinung nach reichen 2.
1. Nachricht mit Nutzername und Passwort
2. Bestätigung oder Ablehnung
sind also insgesamt in der TCP-Instanz 4 Meldungen, Nachricht + Bestätigung.
Sind also insgesamt 7 Meldungen, die Hin- und Hergehen müssen, bevor man die erste Anfrage machen kann.
Im Vergleich dazu 3 Meldungen, bevor Browser eine Anfrage stellen kann.
Ist das Alles? Das Verhältnis von 7:3?
Was ist zusätzlich aufwendig? Das Kreieren eines Connection-Objekte an sich, also abzüglich der gerade berechneten Zeiten für die Roundtrips?
Vielen Dank für die Antworten im Voraus. Wenn ihr mir geholfen habt, gönne ich euch auch ein schönes WE, vorher nicht. ;-)
bis dann,
Jörg
Immer wieder hört man, dass es sehr kostspielig sei, eine Datenbankverbindung aufzubauen.
Ich frage mich allerdings, was daran wirklich so kostspielig ist.
Hier steht beispielsweise:
"Database connections are often expensive to create because of the overhead of establishing a network connection and initializing a database connection session in the back end database. In turn, connection session initialization often requires time consuming processing to perform user authentication, establish transactional contexts and establish other aspects of the session that are required for subsequent database usage."
Also 2 Sachen sind demnach aufwendig:
1. Aufbau der Verbindung, also TCP-Verbindung z.B.
2. Initialisierung einer Session z.B. Authentifizierung, das mit Transaction Context versteh ich eigentlich nicht, wird der nicht erst aufgebaut, wenn man wirklich eine Anweisung abschießt?
OK. Der erste Punkt kann nicht so wahnsinnig teuer sein, schließlich hat man das gleiche auch bei jeder Anfrage eines Browsers an einen Webserver. Für den Aufbau der TCP-Verbindung brauche ich 3 Meldungen, three-way-Handshake, die hin- und hergehen.
Und was ist an dem 2. Punkt hinsichtlich der Übertragungen so aufwendig?
Wieviele Meldungen müssen denn für Authentifizierung hin- und hergehen?
Meiner Meinung nach reichen 2.
1. Nachricht mit Nutzername und Passwort
2. Bestätigung oder Ablehnung
sind also insgesamt in der TCP-Instanz 4 Meldungen, Nachricht + Bestätigung.
Sind also insgesamt 7 Meldungen, die Hin- und Hergehen müssen, bevor man die erste Anfrage machen kann.
Im Vergleich dazu 3 Meldungen, bevor Browser eine Anfrage stellen kann.
Ist das Alles? Das Verhältnis von 7:3?
Was ist zusätzlich aufwendig? Das Kreieren eines Connection-Objekte an sich, also abzüglich der gerade berechneten Zeiten für die Roundtrips?
Vielen Dank für die Antworten im Voraus. Wenn ihr mir geholfen habt, gönne ich euch auch ein schönes WE, vorher nicht. ;-)
bis dann,
Jörg