Oggetto visivo tabella: lento?

Il software per la BI di Microsoft, leader nel mercato
Avatar utente

alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Oggetto visivo tabella: lento?

Messaggio da alex77 »

Buongiorno a tutti,
ho una domanda sull'oggetto visivo tabella.
Ho un file pbix in cui unisco dati dei reclami clienti (da database access) con vendite prodotto (gestionale collegato con odbc).
Funziona tutto bene, unico dubbio appunto su un oggetto visivo tabella: volevo in sostanza mostrare il dettaglio dei reclami: numero reclamo, data, stato accettazione, modello, seriale, codice prodotto, quantità, componente difettoso, tipo difetto, descrizione difetto.
Quasi tutti i dati in questo caso sono nel database access, in varie tabelle ovviamente collegate anche nel modello PBI (testata reclamo con dettaglio prodotto reclamato, quest'ultimo con dettaglio difetti riscontrati, più altre tabelle "anagrafiche" in cui ad esempio il codice di stato accettazione del reclamo è "tradotto" in descrizione), poi per comodità ad esempio invece di mettere il codice e la descrizione del prodotto difettoso presenti in access, inserisco nell'oggetto tabella un campo che unisce le due voci, che proviene da una tabella anagrafica importata dal gestionale (la tabella anagrafica è fatta da codice, descrizione, codice+descrizione) collegata alla tabella del prodotto difettoso in access tramite la chiave del codice.
Vengo alla domanda: usando i filtri nella pagina dei grafici filtro anche la tabella di dettaglio. I grafici si aggiornano istantaneamente mentre la tabella è molto lenta. Mi sono detto: probabilmente perchè PBI serve a fare analisi aggregata e non mostrare dettagli, dovendo andare a leggersi "molti" record (qualche migliaio in verità) e dovendoli filtrare. E' così? oppure sbaglio qualche impostazione?

Grazie


Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Oggetto visivo tabella: lento?

Messaggio da Enrico Galli »

Ciao. Ogni oggetto visuale (tabella o grafici che siano) innesca una query DAX. Quello che puoi fare, per capire dove stia il rallentamento, è aprire il performance analyzer (dal menu Visualizza, o View se lo hai in inglese), avviare la registrazione e aggiornare i visual. Dovrebbe uscirti una tabellina tipo questa:

Immagine

Che già ti darà un'idea. I motivi per cui può essere lenta sono millecinquecento, ma facciamo un passo alla volta ;)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

Autore del topic
alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Oggetto visivo tabella: lento?

Messaggio da alex77 »

Ciao Enrico,
e sempre grazie della gentilezza e puntualità di risposta.
Avevo visto l'analizzatore, non avevo ancora ben capito l'utilizzo, dopo aver provato a seguito del suggerimento, mi pare di aver capito "l'approccio" allo strumento. Ti allego l'immagine del risultato sulla tabella. Ci mette 19 secondi (dovuti sostanzialmente alla query dax) ad aggiornarsi e in questo caso era attivo il filtro su un solo anno.
Ho visto che si può copia-incollare la query, ho provato ma ovviamente ci capisco poco.
Può essere utile condividerla con voi?

Grazie


Immagine
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Oggetto visivo tabella: lento?

Messaggio da Enrico Galli »

alex77 ha scritto: ven 4 dic 2020, 11:22 Può essere utile condividerla con voi?
Proviamoci :)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

Autore del topic
alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Oggetto visivo tabella: lento?

Messaggio da alex77 »

E allora ecco qua. Questo giro ci ha messo 11 secondi... (è perchè ho cambiato anno di filtro, forse)

Codice: Seleziona tutto

// DAX Query
DEFINE
  VAR __DS0FilterTable = 
    TREATAS({DATE(2020, 1, 1)}, 'Calendario'[Anno])

  VAR __DS0Core = 
    SELECTCOLUMNS(
      KEEPFILTERS(
        FILTER(
          KEEPFILTERS(
            SUMMARIZECOLUMNS(
              ROLLUPADDISSUBTOTAL(
                ROLLUPGROUP(
                  'TSegnalazione'[SegnalProgr],
                  'TSegnalazione'[DocData],
                  'TSegnalazione'[StatoDescr],
                  'TCabine'[CabinaFam],
                  'TCabine'[Matricola],
                  'TTipoDifetti'[DescrDifTipo],
                  'TDifetto'[DescrDifetto],
                  'TCabine'[VendData],
                  'TCabTipo'[Tipo Cabina],
                  'TDifetto'[ArtCod],
                  'TDifetto'[ArtDesc]
                ), "IsGrandTotalRowTotal"
              ),
              __DS0FilterTable,
              "SumQtaCabine", CALCULATE(SUM('TCabine'[QtaCabine])),
              "HasDataTDifetto", IGNORE(
                CALCULATE(NOT(ISEMPTY('TDifetto')))
              )
            )
          ),
          [HasDataTDifetto]
        )
      ),
      "'TSegnalazione'[SegnalProgr]", 'TSegnalazione'[SegnalProgr],
      "'TSegnalazione'[DocData]", 'TSegnalazione'[DocData],
      "'TSegnalazione'[StatoDescr]", 'TSegnalazione'[StatoDescr],
      "'TCabine'[CabinaFam]", 'TCabine'[CabinaFam],
      "'TCabine'[Matricola]", 'TCabine'[Matricola],
      "'TTipoDifetti'[DescrDifTipo]", 'TTipoDifetti'[DescrDifTipo],
      "'TDifetto'[DescrDifetto]", 'TDifetto'[DescrDifetto],
      "'TCabine'[VendData]", 'TCabine'[VendData],
      "'TCabTipo'[Tipo Cabina]", 'TCabTipo'[Tipo Cabina],
      "'TDifetto'[ArtCod]", 'TDifetto'[ArtCod],
      "'TDifetto'[ArtDesc]", 'TDifetto'[ArtDesc],
      "IsGrandTotalRowTotal", [IsGrandTotalRowTotal],
      "SumQtaCabine", [SumQtaCabine]
    )

  VAR __DS0PrimaryWindowed = 
    TOPN(
      502,
      __DS0Core,
      [IsGrandTotalRowTotal],
      0,
      'TDifetto'[DescrDifetto],
      1,
      'TSegnalazione'[SegnalProgr],
      1,
      'TSegnalazione'[DocData],
      1,
      'TSegnalazione'[StatoDescr],
      1,
      'TCabine'[CabinaFam],
      1,
      'TCabine'[Matricola],
      1,
      'TTipoDifetti'[DescrDifTipo],
      1,
      'TCabine'[VendData],
      1,
      'TCabTipo'[Tipo Cabina],
      1,
      'TDifetto'[ArtCod],
      1,
      'TDifetto'[ArtDesc],
      1
    )

EVALUATE
  __DS0PrimaryWindowed

ORDER BY
  [IsGrandTotalRowTotal] DESC,
  'TDifetto'[DescrDifetto],
  'TSegnalazione'[SegnalProgr],
  'TSegnalazione'[DocData],
  'TSegnalazione'[StatoDescr],
  'TCabine'[CabinaFam],
  'TCabine'[Matricola],
  'TTipoDifetti'[DescrDifTipo],
  'TCabine'[VendData],
  'TCabTipo'[Tipo Cabina],
  'TDifetto'[ArtCod],
  'TDifetto'[ArtDesc]
(Nota del moderatore: Il codice va inserito all'interno dei TAG [ CODE ])
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Oggetto visivo tabella: lento?

Messaggio da Enrico Galli »

Domanda: tu porti dentro a PBI i dati, o interroghi direttamente il DB (Direct Query)?
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

Autore del topic
alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Oggetto visivo tabella: lento?

Messaggio da alex77 »

Ciao,
importo da:
- database access
- gestionale (driver odbc).

Ho presente che si può fare connessione diretta tramite Direct Query, ma... ora che me lo hai chiesto sono andato a guardare e... non capisco neanche da dove si faccia :D
Quindi la mia risposta iniziale è condizionata al fatto che io non faccia direct query senza saperlo :roll:
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Oggetto visivo tabella: lento?

Messaggio da Enrico Galli »

Access e ODBC non supportano Direct Query, quindi la risposta è implicita :)
Onestamente faccio un po' fatica a capire dalla sola query, che certo sembra inutilmente complessa, dove stia il problema e soprattutto dove si possa intervenire: magari vedendo il modello capirei qualcosa in più, ma obiettivamente ci addentriamo in un campo di alto livello, nel quale anch'io ho ben poca pratica
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

Autore del topic
alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Oggetto visivo tabella: lento?

Messaggio da alex77 »

Grazie comunque Enrico.
Non escludo che magari abbia "fatto male" il modello e questo crei rallentamenti.
Anche io guardando il codice della query dax mi sono detto "accidenti tutta questa roba...", ma non sapendone praticamente niente... come dire... la prendo per buona!

Boh... farò qualche prova magari togliendo campi per vedere se ce n'è qualcuno in particolare che rallenta il tutto.

Grazie!

A.
Avatar utente

Autore del topic
alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Oggetto visivo tabella: lento?

Messaggio da alex77 »

Ri-ciao,
facendo le prove togliendo e rimettendo campi ho risolto l'arcano.
Nella tabella dei difetti in Access c'è il campo descrizione che è un campo memo (adesso "Testo lungo"). E' l'aggiunta di quella colonna che rallenta il tutto (e posso anche capirlo).
Adesso mi chiedo: c'è qualche trucchetto per fargliela "digerire"? Tipo troncare il campo a 256 caratteri? Boh... provo!

Grazie dell'aiuto... come al solito i problemi me li ero creati io da solo! :D
Ma non conoscendo PBI avevo il dubbio di usare malamente lo strumento

Grazie ancora

A.
Rispondi