Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Speicherüberlauf des MS SQL-Servers bei ADO-Verbindung (https://www.delphipraxis.net/143895-speicherueberlauf-des-ms-sql-servers-bei-ado-verbindung.html)

hoika 26. Nov 2009 17:14

Re: Speicherüberlauf des MS SQL-Servers bei ADO-Verbindung
 
Hallo,

mit UDL-Thread benutzen meinte ich,
du sollst deinen Connection-String für den Native-Client per udl-Datei erzeugen.
Du hattest je geschrieben, dass du keine Verbindung zum Server bekommst.

Bei der Konfiguration per UDL wird ein korrekter String (*hoff*) erzeugt,
ausserdem kannst du die Connection prüfen.

Hm

SELECT * FROM

Nimmst du immer Select *
oder ist das jetzt die Ausnahme ?

Wie viele verschiedene Queries-Aufrufe (SQL.Add) hast du eigentlich,
gibt es welche, die sehr oft nur mit verschiedenen Parametern aufgerufen werden
-> prepared Query


Heiko

Christian Seehase 26. Nov 2009 18:09

Re: Speicherüberlauf des MS SQL-Servers bei ADO-Verbindung
 
Moin Windi,

sind, wenn der Fehler auftritt, auf dem Server "einfach" die Transaction-Logs voll, und müssten geschrumpft werden?
Das gibt nämlich auch so eine ähnliche FM.

windi 27. Nov 2009 07:59

Re: Speicherüberlauf des MS SQL-Servers bei ADO-Verbindung
 
Zitat:

mit UDL-Thread benutzen meinte ich,
du sollst deinen Connection-String für den Native-Client per udl-Datei erzeugen.
Du hattest je geschrieben, dass du keine Verbindung zum Server bekommst.
Ich habe es jetzt mit dem Native Client hinbekommen. Wer lesen kann ist klar im Vorteil! Im Connectionstring wird bei diesem Treiber aus irgendeinem Grund beim automatischen Aufbau kein Passwort mit gespeichert - auch wenn man "Passwort speichern" im Konfigurationsdialog ausgewählt hat. Von Hand einsetzen und es funktioniert :)

Zitat:

SELECT * FROM

Nimmst du immer Select *
oder ist das jetzt die Ausnahme ?
Das ist an dieser Stelle mal ne Ausnahme ... und irgendwie hab ich vergessen diese eine Wildcard zu ersetzen. :oops: Ansonsten verzichte ich aber auf "*" in SELECT-Abfragen.

Zitat:

Wie viele verschiedene Queries-Aufrufe (SQL.Add) hast du eigentlich,
gibt es welche, die sehr oft nur mit verschiedenen Parametern aufgerufen werden
Im Ganzen Programm habe ich die SELECT-Abfragen auf eine Mindestmaß von 5 Stück schon kürzen können. Diese sind immer die gleichen nur halt mit unterschiedlichen Werten für die Spalten der Where-Klausel.

Zitat:

sind, wenn der Fehler auftritt, auf dem Server "einfach" die Transaction-Logs voll, und müssten geschrumpft werden?
Das gibt nämlich auch so eine ähnliche FM.
Transaktionslog ... hab ich schon mal davon gehört ... leider kenn ich mich nicht ganz so gut mit dem SQL-Server aus. Kann man das eventuell komplett ausschalten?? :roll:

hoika 27. Nov 2009 16:55

Re: Speicherüberlauf des MS SQL-Servers bei ADO-Verbindung
 
Hallo,

das ist nicht gut ...
Das og ist eines der Grundvoraussetzungen für Transaktionen
(unter mssql).

Über folgendes Script wird das Log abgeschnitten
mydata_log wäre das Log (Name bei den Files/Dateien im Management-Studio)

USE [pinie]
GO
DBCC SHRINKFILE (N'mydata_log' , 0, TRUNCATEONLY)
GO


Vorher aber unbedingt mal was lesen dazu !!!


Heiko

alzaimar 28. Nov 2009 14:04

Re: Speicherüberlauf des MS SQL-Servers bei ADO-Verbindung
 
Zitat:

Zitat von windi
Ein Aufräumen des allokierten Arbeitsspeichers erfolgt vom SQL-Server anscheinend nicht.

Der SQL-Server implementiert aus Performancegründen eine eigene Freispeicherverwaltung, Speicher wird bis zum Maximum dynamisch angefortert und nicht mehr freigegeben.

Schon mal in englisch gegoogelt?
ADO "Not enough storage is available to complete this operation"


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz