Abruzzo SEO specialist, .Net programming and computer stuff
Ecco un topic per il quale anche postando su ng dedicati a vista, anche gli MVP di turno non hanno saputo darmi una mano. Dopo un pò di ricerche, è un pizzico di fortuna, ho finalmente trovato la soluzione.
Windows Vista integra un potente motore di ricerca interno che indicizza praticamente tutto il contenuto dell’hard, per consentire alla funzione di search disponibile nel menù start di trovare documenti, e-mail ecc. disseminati nel pc.
Outlook 2007, installato su Windows Vista, si appoggia esclusivamente su questa funzione (ma questo l’ho scoperto solo adesso), tant’è che il motore di ricerca interno al client di posta elettronica, viene praticamente rimpiazzato dalla funzione di indexing di Vista.
Mi è successo per tre riformattazioni consecutive, che “semplicemente” spostando il file .pst con la mia posta e i miei contatti, tutte le vecchie e-mail e i contatti presenti nel file (non quindi i nuovi elementi), erano praticamente introvabili. Questo succedeva anche per i contatti, sempre quelli già presenti.

Per capire questa cosa, ho confrontato le versioni di Outlook 2007 installate su un Windows Vista e su un XP. Sul secondo OS, il menù rappresnetato in figura non c’era. Quindi avevo “capito” che la funziona di ricerca era stata demandata al sistema operativo, e che potenzilamente le e-mail non erano indicizzate. Tuttavia, cercando un modo per far partire questa indicizzazione da dentro Outlook, dove del resto mi aspettavo dovesse partire, non c’era un pulsante apposito.
Infatti, cliccando sul pulsante “indexing status” dentro Outlook 2007 mi diceva sempre che i documenti da indicizzare erano 0.
Mi è venuto allora in mente che, proprio perchè Outlook si appoggia su questa funzione di indicizzazione, dato che il file era stato “copiato”, ma non generato di sana pianta, l’indicizzazione sul file in realtà non era stata fatta.
Allora, sono entrato nel pannello di controllo, “System and Maintenace”, quindi “Indexing Option”.

Dentro alla finestra che appare ho cliccato su Advanced, e a quel punto nel riquadro “Troubleshooting” ho premuto sul tasto “Rebuild”.
A quel punto è praticamente ripartita l’indicizzazione di tutto il contenuto del mio hard disk, ma contemporaneamente anche quella del file pst della mia posta.
Infatti, tornando in Outlook, ho potuto notare – immettendo un testo nel casella di ricerca – che una voce mi avvertiva che non tutti i risultati sarebbero comparsi per via del fatto che una indicizzazione era in corso.

Lasciando il testo ricercato nella casella, mano a mano che l’indicizzazione veniva portata avanti, sono inziati a comparire i documenti corrispondenti al criterio di ricerca immesso. Ho finalmente tirato un sospiro di sollievo, perchè non sapevo più come andare a ripescare documenti vecchi.
Sapere “utilizzare” un database da un punto di vista di amministratore, significa anche saperlo mantenere. L’utilizzo eccessivo del db, provoca a lungo andare una frammentazione dei dati nelle pagine, e si rileva quindi necessario riorganizzare o reindicizzare una o più tabelle al fine di ripristinare una buona performance sia in lettura che in scrittura.
Normalmente la percentuale di frammentazione dovrebbe attestarsi non oltre il 35% (Microsoft dice anche il 25%), limite oltre il quale le performance della tabella o del db iniziano a scemare.
Per verificare la percentuale di frammentazione si può ricorrere a questa istruzione:
DECLARE @object_name VARCHAR(20);
SET @object_name = ‘TableName’DBCC SHOWCONTIG (@object_name) WITH TABLERESULTS, ALL_INDEXES
valida per SQL 2000 e SQL 2005 oppure una più elegante
DECLARE @db_id SMALLINT;
DECLARE @object_id INT;SET @db_id = DB_ID(N’DBName’);
SET @object_id = OBJECT_ID(N’TableName’);SELECT * FROM sys.dm_db_index_physical_stats(@db_id, @object_id, NULL, NULL , ‘SAMPLED’);
valida per il solo SQL 2005.
Nel primo caso la colonna di riferimento sarà la “LogicalFragmentation” nel secondo “avg_fragmentation_in_percent”.
Quando questo valore è al di sopra della soglia, si rende necessaria la reindicizzazione. Come?
Un sistema veloce e rapido per reindicizzare tutte le tabelle presenti in SQL Server 2005 grazie all’usilio della SP “nascosta” MSForEachTable può essere questo mostrato qui sotto.
EXECUTE sp_MSForEachTable @command1 =’ALTER INDEX ALL ON ? REBUILD WITH (FILLFACTOR = 90, SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF, ONLINE = OFF);’
Questo comando cicla tutte le tabelle e reindicizza tutti gli indici ricostruendoli.
Se invece si vuole essere più specifici e reindicizzare la singola tabella allora si può utilizzare quest’altro comando:
DBCC DBREINDEX (‘NomeTabella’, ”, ValoreDiFrammentazione)
valido per SQL 2000 e SQL 2005.
Si tenga tuttavia presente che la ricostruzione degli indici porta via tempo macchina prezioso durante il quale le performance si fanno sentire. Quindi se non è proprio necessaria la ricostruzione, è meglio ipotizzare una semplice riorganizzazione.
A tal proposito all’interno del BOL, sotto la voce sys.dm_db_index_physical_stats c’è un bellissimo esempio che in base la percentuale di frammentazione sceglie se riscotruire o riorganizzare.
Non riuscirò mai a comprendere perchè Microsoft anche con quest'ultima sfornata di prodotti (Vista, Office 2007 ecc) non abbia incluso in Outlook un bel tastino "Esporta account" come esiste per il fratello minore Outolook Express.
Fortunatamente la struttura del registro sulla quale queste informazioni vengono scritte non è cambiata, quindi che siate su XP o su Vista, che stiate utilizzando Outlook 2003 o Outlook 2007 l'unica cosa che c'è bisogno è il regdit procedendo così:
Il gioco è fatto. Al successivo riavvio di Outlook i vostri account utente saranno li. La cosa peggiore che potrebbe capitare è che i file pst siano in una posizione differente rispetto a dove erano sul vecchio pc (e questo sicuramente accadrà nel passaggio XP -> Vista, perchè se scegliete di mettere i file pst nella cartella standard di Vista, sul nuovo OS il path è diverso. Ma tutto si risolve semplicemente selezionando con la finestra di sfoglia file proposta la nuova ubicazione del file.
La funzione sleep di Vista è molto utile quando ci si allontana dal computer e non lo si vuole lasciare acceso inutilmente, ma al tempo stesso si vorrebbe evitare al ritorno di riavviare tutte le applicazioni in uso. Essa unisce i vantaggi delle vecchie funzioni di Stand-by e Hibernate.
Tuttavia un “bel” giorno la funziona ha smesso di funzionare sul mio pc, apparentemente senza motivo. Premendo il tasto sleep, il computer dava l’impressione di entrare nello stato di sleep, in realtà tutte le ventole restavano accese ed entrava nello stato di “locked”.
Dopo alcune ricerche (sembravo non essere l’unico con questo problema) ho finalmente individuato il problema (e, quindi, la soluzione): quando si attiva il media sharing (quando si configura il Media Center o si collega un Xbox360 come nel mio caso) il computer non entra più nella modalità di sleep, bensì entra nell’Away mode.
La soluzione: andare in power options / advanced settings / multimedia settings ed impostare il valore dell’opzione su “Allow the computer to sleep“
Mi chiamo Andrea Moro, sono un appassionato di informatica da quando avevo 8 anni e da quando mio padre mi regalò il C64.
Qualche anno più tardi, il mio primo pc e nel 1994 la prima esperienza con Internet, di cui mi sono subito innamorato e con cui oggi mando avanti la mia attività di Web Designing e posizionamento nei motori di ricerca.