Alkampfer's Place

Wednesday, November 22, 2006, 02:52 PM ( 14 views ) - Programmazione Generale
Tempo fa sviluppando un sito di web analytics avevamo una stored in SQl server 2005 che impiegava circa 5 minuti per essere eseguita. Dopo che i dati sono cresciuti, si parla di una tabella con milioni di righe, purtroppo il tempo di esecuzione è cresciuto a circa 40 min.

Riprendendo il progetto dopo qualche mese, a mente fresca e ragionando di nuovo sui dati, mi è venuta in mente una possibile soluzione per velocizzare il tutto. Praticamente spostando anticipatamente i dati in tabelle temporanee e restringendo quindi il campo di analisi la query è passata a 2 minuti abbondanti.

A questo punto un 15 minuti di analisi esaminando l'execution plan ha portato alla creazione di due indici ed è stato deciso di utilizzare un altro campo per l'indice cluster. Il risultato finale è che la query impiega solo 8 secondi.

Tutto questo per dire che talvolta è bene lasciare un progetto per un po, quando lo si riprende dopo un po di tempo spesso si esamina il tutto da un'ottica diversa e si trovano soluzioni migliori allo stesso problema.

Alk.

Monday, November 20, 2006, 11:47 AM - Programmazione Generale
E' da molto che utilizzo subversion e non ho mai avuto problemi, stasera invece è successo un problema.

Avevo aggiornato il tortoise, ho iniziato a lavorare e tutto è ok. Poi da dentro VS2005 inizio a spostare dei file da una progetto ad un altro, ankh come al solito da qualche errorino. Quando ho finito ritesto e compilo il tutto e faccio un bel commit.

Dopo poco mi accorgo che alcuni files sono ancora segnati come modificati e non riescono ad andare su, il problema è che nel repository la cartella non esiste. In pratica ankh ha spostato cartelle da un progetto ad un altro, ma purtroppo ha fatto casino e quindi la mia copia locale la dava come corretta ma effettivamente nel repository le cartelle non erano presenti.

La soluzione è spostare i file in un altra cartella, cancellare tutte le cartelle .svn, eliminare la cartella corrotta dal repository e rimandare su tutto un'altra volta. Nulla di problematico :lol:

Alk.

Monday, November 20, 2006, 06:13 AM - Asp.Net
Non c'è nulla di più fastidioso degli errori intermittenti e soprattutto degli errori che accadono quando metti il sito nel server di produzione mentre in locale tutto è ok. Come da titolo in un server di produzione ho errori intermittenti di viewState, dato che non voglio bypassare la validazione mi metto in cerca e trovo questo articolo. Nell'articolo viene spiegato che quando il processo di asp.net gira con le credenziali di un account utente si possono generare errori intermittenti.......

"When the machineKey is set to AutoGenerate, the key information is stored in the HKEY_CURRENT_USER hive for the account running the process......

When the application pool is running under a user account, the above keys are not generated leading to an intermittent invalid viewstate error."

Questa cosa è chiaramente frustrante, visto che io faccio sempre girare nei server di produzione l'application pool con un account utente. Faccio questo perchè così posso dare a quell'utente i privilegi minimi di accesso al sistema aumentando così la sicurezza, poi scopri che ti può generare "errori intermittenti". Questo significa che metti il server in produzione poi ti iniziano ad arrivare mail di errori con invalid viewstate :(, naturalmente il cliente non è felice :(.

La soluzione è comunque banale, è sufficiente impostare la chiave machineKey nel web.config globale. Per generare una nuova chiave si trovano siti come questo che generano chiavi casuali.

Alk.


Monday, November 20, 2006, 04:02 AM - General
Dato che Diego aveva manifestato la sua curiosità riguardo al motore di blog che utilizzo che è scaricabile quì http://www.simplephpblog.com volevo segnalare che per avere una sitemap decente del vostro blog potete andare a http://www.sitemapdoc.com/Default.aspx un sito che vi fa una sitemap in tempo reale scandendo il vostro sito. Le uniche cose che dovete sapere è che bisogna elmininare tutte le pagine che hanno la stringa "m=" come querystring, perchè altrimenti vi indicizza n volte le pagine dato che prende i link dal calendario, poi è necessario mettere la stringa "PHPSESSID" nell'opzione "Filter out querystring parameters" in modo che non vi fa entry duplicate a causa del cambio di id di sessione.

Alk.

Sunday, November 19, 2006, 03:43 AM - Varie
Cercando in giro ho trovato un interessante tool freeware per fare le sitemap di un sito da sottoporre a google, lo trovate quì http://www.sitemapbuilder.net/download.aspx.

Alk.

Back Next