Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Ottimizzazione script delete record

    Ciao a tutti!
    Ho il seguente script che mi va a prelevare i record da una tabella e li confronta con un'altra, se nn viene trovata corrispondenza il record viene cancellato .. lo script ha sempre funzionato con pochi record .. però ora lancio la pagina ma sta li a caricare .. caricare .. come lo potrei ottimizzare?
    Db Mysql
    la tabella punti_hotel ha circa 14.000 record
    la tabella sab_hotel ha circa 14.000 record

    Codice PHP:
    Set rs Server.CreateObject("ADODB.Recordset"
        
    sql "select hotel_id from punti_hotel"
        
    rs.open sqlobjConn

        
    if not rs.eof then
        
        
    do until rs.eof
           response
    .write rs("hotel_id")&"
    "
            
    Set rs_confcodc Server.CreateObject("ADODB.Recordset"
            
    sql_confcodc "select id from sab_hotel where hotel_id="&rs("hotel_id")&""
            
    rs_confcodc.open sql_confcodcobjConn
            
            
    if not rs.eof then
                
    ' se trovo il record non faccio niente
                Response.write "Record trovato! 
    "
            else
                ' 
    se non lo trovo elimino il record da punti_hotel
                Updcitta 
    "Delete from punti_hotel where hotel_id="&rs("hotel_id")&""
                
    objConn.Execute (Updcitta)
                
    response.write "Hotel id "&rs_confcodc("hotel_id")&" eliminato da punti_hotel!
    "
            
    end if
            
            
    rs_confcodc.close 
            set rs_confcodc
    =nothing 
            
        rs
    .movenext
        loop

        end 
    if
        
    rs.close 
        set rs
    =nothing 
    qualche idea..

  2. #2
    fammi capire, vuoi cancellare dalla tabella punti quelle righe che non hanno più un hotel corrispondente, giusto?

  3. #3

  4. #4
    inizia preparando una LEFT JOIN tra i punti e gli hotel. le righe orfane sono quelle con HOTEL_ID=NULL nella tabella di destra (quella degli hotel)

  5. #5
    ok mhh non sono tanto pratico delle join .. cmq ho fatto:

    Codice PHP:
    Set rs Server.CreateObject("ADODB.Recordset"
        
    sql"SELECT punti_hotel.hotel_id FROM  punti_hotel LEFT OUTER JOIN sab_hotel ON  punti_hotel.hotel_id = sab_hotel.hotel_id"
        
    rs.open sqlobjConn
        
        
    if not rs.eof then
        
        
    do until rs.eof
          response
    .write rs("punti_hotel.hotel_id")&"
    "

    rs.movenext
        loop
        
    end 
    if
        
    rs.close 
        set rs
    =nothing 
    ho lanciato la pagina e continua a caricare .. caricare ... nn mi mostra niente .. manco un errore .. continua sempre a caricare ...

    poi ho provato a fare una semplice
    'sql = "select hotel_id from punti_hotel" e in nano secondo mi ha mostrato tutti i 14.000 record...

  6. #6
    la tua join è completa. devi estrarre le sole righe orfane come ti ho detto prima

  7. #7
    ho provato così:
    Codice PHP:
    sql"SELECT punti_hotel.hotel_id FROM  punti_hotel LEFT OUTER JOIN sab_hotel ON  punti_hotel.hotel_id = sab_hotel.hotel_id where sab_hotel.hotel_id is NULL" 
    ma sta pagina continua sempre a caricare.. caricare ...

  8. #8
    tabella punti a sx e tabella hotel a dx, come da mio suggerimento (tu le hai messe al contrario)

  9. #9
    così dovrebbe andare?
    la pagina però continua sempre a caricare .. caricare ..
    Codice PHP:
    Set rs Server.CreateObject("ADODB.Recordset"
    sql"SELECT punti_hotel.hotel_id FROM  sab_hotel LEFT OUTER JOIN punti_hotel ON  sab_hotel.hotel_id=punti_hotel.hotel_id where sab_hotel.hotel_id is NULL"
    rs.open sqlobjConn
        
    if not rs.eof then
    do until rs.eof
    response
    .write "ciao! 


  10. #10
    SELECT
    punti_hotel.hotel_id
    FROM punti_hotel LEFT OUTER JOIN sab_hotel
    ON sab_hotel.hotel_id=punti_hotel.hotel_id
    WHERE sab_hotel.hotel_id is NULL



    che db usi?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.