Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    170

    problema con query lenta

    salve a tutti
    rompo di nuovo le scatole per chiedere un consiglio, io ho la seguente query

    SELECT id_Categoria,Categoria,Sottocategoria,Gruppo,Count (Gruppo)as Totale FROM Prodotti WHERE Categoria LIKE 'Abbigliamento' GROUP BY Categoria,Sottocategoria,Gruppo ORDER BY Categoria,count(Gruppo) DESC

    Tutto va alla perfezione l'unico problema e che per eseguire la query ci mette 2 secondi e fischia secondo voi come potrei renderla piu svelta?io ho indicizzato tutti i campi ho fatto bene?
    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Molto probabilmente è il like che rallenta.

    Secondo me (da quel che immagino tu possa avere in quella tabella) dovreste creare una tabella nuova di questo genere:

    id nome
    1 Abbigliamento
    2 Calzature
    3 Arredo casa
    4 etc..


    e poi nella tabella in cui fai la query al posto di abbigliamento avrai un id (in questo caso 1)

    La query diventa così:

    SELECT id_Categoria,Categoria,Sottocategoria,Gruppo,Count (Gruppo)as Totale FROM Prodotti WHERE Categoria =1 GROUP BY Categoria,Sottocategoria,Gruppo ORDER BY Categoria,count(Gruppo) DESC

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    170
    Ciaa,
    inanzi tutto grazie per il tempo che mi hai dedicato , la tabella viene riempita con i dati da un 'altro sito io mi trovo solamente ad elaborarlo quindi non posso cambiare il contenuto delle celle. potrei fare un Categoria='Abbigliamento' dici che potrebbe essere piu svelto ?

  4. #4
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Sicuramente gli indici aiutano, ma un fattore determinante è il numero di tuple presenti nella tabella; tuttavia queste iniziano ad essere rilevanti nell'ordine delle migliaia...credo, però, che nel tuo caso la lentezza della query dipenda dai molti criteri espressi (GROUP BY, ORDER BY, count(), DESC...). Credo siano la causa principale della "lentezza" di esecuzione...se sei vincolato a questi criteri, credo possa fare ben poco per sveltirla, tanto più che la selezione viene fatta su una sola tabella, Prodotto - se non sbaglio. Quindi non hai neanche dei JOIN che sono notoriamente le operazioni più pesanti...

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.