Hej! Ett timeout-felmeddelande kommer från källan för databaskopplingen (i ditt fall en ODBC-driver), inte databasservern i sig. Jag rekommenderar dig att använda SQL Servers OLEDB-provider istället för nån gammal ODBC-driver. Vidare bör inte frågan du ställer ta så värst lång tid, förutsatt att du har index som stödjer den. Problemen är flera. 1. Hur du lyckas få det felmeddelandet i Enterprise Manager/Query Analyzer övergår mitt förstånd... Säker på att det var där du fick det?? 1. Jepp, det är jag säker på. Det är därför jag är lite fundersam. Vilken version av SQL-server har du, och vilken sp är pålagd? SQL-Server 2000 och SP3. Hur körde du frågan i Enterprise Manager? Kan du beskriva steg för steg? Jag högerklickar på tabellen och väljer open table, sedan query. Kör frågor via Query Analyzer i stället föreslår jag. Den där funktionen i EM är uppenbarligen inte särskilt tillförlitlig.Timeout problem vid utvärdering av SQL-Server
Jag håller på och utvärderar SQL-Server och MySQL för att se vilken databas vi ska använda.
Jag använder en tabell med 3,5 miljoner poster för att undersöka svarstider och liknande.
Problemet är att när jag ställer en fråga med villkor i SQL-Server mot denna tabell så får jag alltid (till 99%) ett felmeddelande som lyder:
[Microsoft][ODBC SQL Server Driver]Timeout expired
Var fixar jag detta?
Är det en allmän inställning för databasen hur lång tid en query får ta?
Jag har bara jobbat med Access tidigare och ska nu utvärdera om vi ska byta till MySQL eller SQL-Server, så jag har inte så mycket kunskap om hur det hele fungerar.
All hjälp uppskattas.
Om ni vill veta så följer frågan jag ställde:
<code>SELECT COUNT(*) AS [Antal rader]
FROM Telefoni
GROUP BY StartDat, StartTid, ANr, BNr, LangdMin
HAVING (COUNT(*) > 1)</code>Sv: Timeout problem vid utvärdering av SQL-Server
Sv: OLEDB-provider istället för ODBC
1. Jag kör denna fråga på servern med hjälp av Enterprise Manager och vet därför inte vilken koppling den använder.
2. Hur skapar jag en koppling till servern utan att använda ODBC. Som jag har förstått det måste man lägga upp en ODBC-koppling för att komma åt servern. Och då en kopplning för varje databas. Finns det något annat sätt?
3. Alltså hur använder jag SQL Servers OLEDB-provider istället för ODBC?
Tre olika fall:
1. Kopplingen till en Access-klient.
2. Kopplingen till Enterprise Manager dels på servern, dels på en annan maskin.
3. Koppling i .NET (där vet jag att man ska använda SQLxxxx klasserna, men det behövs fortfarande en connection-string).
Tack i förväg.Sv: OLEDB-provider istället för ODBC
2. När du använder OLEDB behöver du inga ODBC-datakällor.
3. ASP-exempel:
<code>
Set cn=Server.CreateObject("ADODB.Connection")
cn.Provider = "sqloledb"
cn.Properties("Data Source").Value = "myserver"
cn.Properties("Initial Catalog").Value = "mydatabase"
'Använd integrerad NT-säkerhet.
cn.Properties("Integrated Security").Value = "SSPI"
cn.Open
</code>
Vill du använda SQL-säkerhet kan du sätta Properties("User ID") och Properties("Password") istället för Integrated Security.
Kolla in på denna site för att hitta de connection strings du behöver:
http://www.connectionstrings.comwww.connectionstrings.com</url>Sv: OLEDB-provider istället för ODBC
Sv: OLEDB-provider istället för ODBC
Sv: OLEDB-provider istället för ODBC
Jag kör det på sista betaversionen av Windows Server 2003.Sv: OLEDB-provider istället för ODBC
Sv: OLEDB-provider istället för ODBC
I querydeisgnfönstret som öppnas skapar jag frågan och kör den genom att klicka på utropstecknet i verktygsraden.
Felet uppkommer inte alltid, när jag körde den nu så blev det inget fel.
Det är skumt det här, nu kan jag inte återskapa felet.Sv: OLEDB-provider istället för ODBC
Om du tycker att frågan tar lång tid att köra så kan du ju exempelvis köra Index Tuning Wizard för att få tips på lämpliga index.