| FAQ |
| Kalender |
|
|
|
|
#1 | ||
|
|||
|
Medlem
|
|||
|
|
Svara med citat
|
|
|
#2 | ||
|
|||
|
Mycket flitig postare
|
Det är inblandat variabler som inte är SQL (sSession_name m.fl.) och så ligger ett anrop till System.DateTime.Now.AddHours(2) som också är .NET så detta är en del av (troligen) c#-kod som genererar SQL. KAn vi få se den genererade sql-koden (det som faktiskt skickas till databasen) så är det lättare att hjälpa till när man slipper "gissa".
|
||
|
|
Svara med citat
|
|
|
#3 | ||
|
|||
|
Mycket flitig postare
|
Jag tror inte du kan använda IF-satser i Mysql om du inte har dem i en funktion. Då får du istället bryta ut koden till separata sql-frågor och göra if-satserna i din applikation istället för i databasen:
Jag skall försöka ge mig på en tolkning av din mix av .NET-kod och SQL till en pseudo-variant. "ExecuteSql" nedan är bara en placeholder för vad du nu har för att exekvera sql-kod. Kod:
var count = ExecuteSql("SELECT COUNT(*) FROM IF_sessions WHERE session_name = '" + sSession_name + "' AND session_id = '"+ sSession_id + "'");
if (count == 0) {
ExecuteSql("INSERT INTO IF_sessions(session_id, created, expires, session_name, session_data)
Values('" + sSession_id + "', NOW(), '" + System.DateTime.Now.AddHours(2) + "', '" + sSession_name + "', '" + sSession_data + "') "
}
else {
ExecuteSql("UPDATE IF_sessions SET expires = NOW(), session_data = '" + sSession_data + "' WHERE session_id = '" + sSession_id + "' AND session_name = '"+ sSession_name + "'")
}
|
||
|
|
Svara med citat
|
|
|
#4 | ||
|
|||
|
Mycket flitig postare
|
Citat:
|
||
|
|
Svara med citat
|
|
|
#5 | ||
|
|||
|
Har WN som tidsfördriv
|
Det betyder inte att det blir snabbare för det. Skall du hålla på och extremoptimera (behövs antagligen inte alls) kan du börja med att skriva om det till Stored Procedure.
|
||
|
|
Svara med citat
|
|
|
#6 | ||
|
|||
|
Mycket flitig postare
|
Citat:
Ett sätt att optimera är som jayzee skriver att göra en Stored Procedure. En annan variant är att göra primary key till "SESSION_ID + SESSION_NAME" och sen använda INSERT INTO ... ON DUPLICATE KEY UPDATE http://dev.mysql.com/doc/refman/5.1/...duplicate.html Kod:
INSERT INTO IF_sessions(session_id, created, expires, session_name, session_data)
Values('...', ..., '...', '...', '....')
ON DUPLICATE KEY UPDATE
expires = '...',
session_data = '...'
|
||
|
|
Svara med citat
|
| Svara |
| Ämnesverktyg | |
| Visningsalternativ | |
|
|