Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    buone partiche - stored procedure

    Ciao a tutti,
    ho un problema con una serie di query che utilizzano una vista (prodotto_view) e vorrei sostituirla con una stored proceure.

    Il mio dubbio è questo, date le due seguenti query:

    codice:
    SELECT C.* FROM collezione as C 
    JOIN associazione_utn_collezione as A ON C.id_collezione = A.collezione AND A.utente = '1756' 
    JOIN prodotto_view as P ON P.collezione =  C.id_collezione
    WHERE (C.ignora_disponibilita = '1' OR C.riassortimenti = '1' OR C.sostituzioni = '1') 
    ORDER BY external_id_collezione;
    (eseguita in 28 secondi)

    codice:
    SELECT DISTINCT (C.id_categoria) FROM prodotto_view as P 
    JOIN categoria as C ON P.categoria = C.id_categoria 
    JOIN associazione_utn_collezione as A1 ON P.collezione = A1.collezione AND A1.utente = '1756' 
    JOIN associazione_utn_linea AS A2 ON P.linea = A2.linea AND A2.utente = '1756' 
    GROUP BY P.id_prodotto;
    (eseguita in 27 secondi)

    è meglio che io faccia un'unica stored procedure che simuli solo il risultato della vista, o due stored procedure che sostituiscano completamente le due query?

    ... e se le query fossero 10 invece di 2?

    Grazie a chiunque riuscisse a darmi un consiglio in merito!

  2. #2
    a occhio sono due query diverse, no? perché dici di farne una sola?

  3. #3
    Ne farei una sola nel caso in cui volessi solo sostituire la vista

  4. #4
    sinceramente non capisco

  5. #5
    questa è la query della vista (product_view):

    codice:
    select p.id_prodotto, p.external_id_prodotto, p.collezione, p.categoria, p.linea, p.ordinamento
    from prodotto p
    join valore_listino v on v.prodotto = p.id_prodotto left 
    join collezione c on p.collezione = c.id_collezione 
    join media_prodotto as M ON P.id_prodotto = M.prodotto 
    where p.stato = '1' and c.riassortimenti <> '1' and c.ignora_disponibilita = '1' or p.id_prodotto in 
    (select s.prodotto from sotto_prodotto s group by s.prodotto having sum(s.disponibilita) > '3')
    group by p.id_prodotto;
    quindi non so se sia più giusto creare la stored procedure solo per la vista, oppure creare 2 stored procedure, una per ogni query del primo post.

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.