Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Indexed Views & Rebuild

Îåêßíçóå áðü ôï ìÝëïò Wizard!. Τελευταία δημοσίευση από το μέλος spaceman στις 28-12-2010, 13:56. Υπάρχουν 17 απαντήσεις.
Σελίδα 1 από 2 (18 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  27-12-2010, 13:50 61922

    Indexed Views & Rebuild

    Καλησπέρα και χρόνια πολλά σε όλους. Εύχομαι κάθε όνειρό σας να γίνει πραγματικότητα και όλοι μαζί να ξεπεράσουμε τις όποιες δυσκολίες αντιμετωπίζουμε τελευταία σα χώρα :)

     

    Στο θέμα τώρα... Έχουμε μια κεντρική βάση SQL στην οποία υπάρχουν οι εξής πίνακες: Χώρες, Πόλεις, Αεροδρόμια. Αυτή η βάση ενημερώνεται κεντρικά καθημερινά και στο τέλος της ημέρας τρέχει μια διαδικασία που συγχρονίζει κάποιες περιφεριακές. Η διαδικασία αυτή είναι απαραίτητη και ΔΕ μπορεί να αντικατασταθεί από κάποιο replication. Στην κάθε περιφερειακή βάση υπάρχει ένα indexed view που περιλαμβάνει τους 3 πίνακες και ένας FTC που περιλαμβάνει όλα τα πεδία για λόγους αναζήτησης.

    Το πρόβλημα είναι, όταν κάποιες φορές χρειάζεται να γίνει Truncate κάποιος από τους πίνακες και για να επιτευχθεί αυτό αναγκαστικά γίνονται drop τ index και το view και μετά recreate. Μετά το πέρας της διαδικασίας λοιπόν, κάνοντας μια αναζήτηση στον FTC δε φέρνει αποτελέσματα.

    Ξεχνάω κάτι; περίμενα αρκετή ώρα ώστε να ενημερωθούν indexes αλλά δε φέρνει τίποτα.

    Δημοσίευση στην κατηγορία: , ,
  •  27-12-2010, 13:57 61923 σε απάντηση της 61922

    Απ: Indexed Views & Rebuild

    rebuild τον fts catalog τον έκανες;


    Antonios Chatzipavlis

  •  27-12-2010, 14:43 61926 σε απάντηση της 61922

    Απ: Indexed Views & Rebuild

    Αν χρησιμοποιεις 2005 χωρις SP2, ισως αξιζει να ριξεις μια ματια σε αυτο: http://support.microsoft.com/kb/928537

    --HTH--

  •  27-12-2010, 15:16 61928 σε απάντηση της 61923

    Απ: Indexed Views & Rebuild

    Antonios Chatzipavlis:

    rebuild τον fts catalog τον έκανες;

    To δοκίμασα κι αυτό, χωρίς αποτέλεσμα. Αν και δεν νομίζω να είναι δόκιμο τη στιγμή που ο κατάλος μπορεί να έχει κι άλλα indexes μέσα και να κάνει αρκετό χρόνο για rebuild.

    spaceman:

    Αν χρησιμοποιεις 2005 χωρις SP2, ισως αξιζει να ριξεις μια ματια σε αυτο: http://support.microsoft.com/kb/928537

    --HTH--

    Όχι, είναι 2008 με όλα τα updates.

  •  27-12-2010, 15:58 61930 σε απάντηση της 61928

    Απ: Indexed Views & Rebuild

    Ωραιότατα,

    Έχω μερικές ερωτήσεις που θα ήθελα αν μπορείς να μας απαντήσεις

    Αν έχω καταλάβει καλά το full text το βασίζεις πάνω στο indexed view σωστά;

    Αν ναι τότε πριν κάνεις truncate σβήνεις τον index πάνω στο view και μετα το view σωστά;

    Αυτό κανόνικά θα σου έβγαζε λάθος 7613 αν σου βγάζει πως το προσπερνάς? μήπως σβήνεις το fts?

    Κάνω τις ερωτήσεις αυτές γιατί προσπαθώ να καταλάβω το περιβάλλον και την λογική που έχεις πριν προχωρήσω παρακάτω

    Σε ευχαριστώ

     

     


    Antonios Chatzipavlis

  •  27-12-2010, 16:49 61932 σε απάντηση της 61928

    Απ: Indexed Views & Rebuild

    Τι αποτελεσματα σου γυρναει το παρακατω?

    SELECT * FROM sys.fulltext_indexes 

    Υποθετωντας, οτι δημιουργεις FT index με tsql, μηπως χρησιμοποιεις το option CHANGE_TRACKING = MANUAL or OFF/NO POPULATION ?

     

  •  27-12-2010, 17:02 61934 σε απάντηση της 61930

    Απ: Indexed Views & Rebuild

    Antonios Chatzipavlis:

    Ωραιότατα,

    Έχω μερικές ερωτήσεις που θα ήθελα αν μπορείς να μας απαντήσεις

    Αν έχω καταλάβει καλά το full text το βασίζεις πάνω στο indexed view σωστά;

    Αν ναι τότε πριν κάνεις truncate σβήνεις τον index πάνω στο view και μετα το view σωστά;

    Αυτό κανόνικά θα σου έβγαζε λάθος 7613 αν σου βγάζει πως το προσπερνάς? μήπως σβήνεις το fts?

    Κάνω τις ερωτήσεις αυτές γιατί προσπαθώ να καταλάβω το περιβάλλον και την λογική που έχεις πριν προχωρήσω παρακάτω

    Σε ευχαριστώ

    Εγώ ευχαριστώ :-)

    Λοιπόν, ναι, το ftc είναι βασιζμένο πάνω σε indexed view. Αυτό αναγκαστικά γιατί ψάχνω σε 3 διαφορετικά tables. Σας παραθέτω το script. Μετά την εκτέλεσή του, αντιγράφονται όλα τα δεδομένα στον ένα πίνακα για λόγους συγχρονισμού

     

    USE [B2COnline]
    GO
    
    DROP FULLTEXT INDEX ON dbo.[view_AutoCompleteAirports]
    
    IF  EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[view_AutoCompleteAirports]') AND name = N'idx_AirPort_ID')
    DROP INDEX [idx_AirPort_ID] ON [dbo].[view_AutoCompleteAirports] WITH ( ONLINE = OFF )
    GO
    
    IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[view_AutoCompleteAirports]'))
    DROP VIEW [dbo].[view_AutoCompleteAirports]
    GO
    
    TRUNCATE TABLE [dbo].[tbl_AirPorts]
    GO
    
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE VIEW [dbo].[view_AutoCompleteAirports] WITH SCHEMABINDING
    AS
    SELECT     dbo.tbl_Countries.Country, dbo.tbl_Countries.CountryGR, dbo.tbl_Countries.CountryCode, dbo.tbl_Cities.Country_ID, dbo.tbl_Cities.City, dbo.tbl_Cities.CityGR, 
                          dbo.tbl_Cities.CityCode, dbo.tbl_AirPorts.CityID, dbo.tbl_AirPorts.AirPortID, dbo.tbl_AirPorts.AirPortName, dbo.tbl_AirPorts.AirPortCODE
    FROM         dbo.tbl_Countries INNER JOIN
                          dbo.tbl_Cities ON dbo.tbl_Countries.Country_ID = dbo.tbl_Cities.Country_ID INNER JOIN
                          dbo.tbl_AirPorts ON dbo.tbl_Cities.City_ID = dbo.tbl_AirPorts.CityID
    GO
    
    SET ARITHABORT ON
    GO
    
    SET CONCAT_NULL_YIELDS_NULL ON
    GO
    
    SET ANSI_PADDING ON
    GO
    
    SET ANSI_WARNINGS ON
    GO
    
    SET NUMERIC_ROUNDABORT OFF
    GO
    
    CREATE UNIQUE CLUSTERED INDEX [idx_AirPort_ID] ON [dbo].[view_AutoCompleteAirports] 
    (
    	[AirPortID] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    GO
    
    CREATE FULLTEXT INDEX ON dbo.[view_AutoCompleteAirports]
    ( 
    	Country, CountryGR, CountryCode, City, CityGR, CityCode, AirPortName, AirPortCODE
     ) 
    KEY INDEX idx_AirPort_ID; 
    GO
    
    ALTER FULLTEXT INDEX ON dbo.[view_AutoCompleteAirports] ENABLE;
    GO

     

  •  27-12-2010, 18:45 61936 σε απάντηση της 61934

    Απ: Indexed Views & Rebuild

    Αν το παρακατω επιστρεφει εγγραφες, τοτε ο full text index εχει δημιουργηθει k populated κανονικα:

    SELECT * FROM sys.dm_fts_index_keywords(DB_ID(N'B2COnline'), OBJECT_ID(N'dbo.view_AutoCompleteAirports', N'V'))

    --ΗΤΗ--

  •  27-12-2010, 20:53 61944 σε απάντηση της 61936

    Απ: Indexed Views & Rebuild

    Επίσης θα ήθελα να μας πεις αν η παρακάτω σου φέρνει εγγραφές, αν σου φέρνει θα ήθελα το αποτέλεσμα της plz.

    select * from sys.dm_fts_outstanding_batches

    μια μικρή διόρθωση στην εντολή που σου έδωσε ο φίλος spaceman δεν υπάρχει η τελευταία παράμετρος.


    Antonios Chatzipavlis

  •  27-12-2010, 21:51 61950 σε απάντηση της 61944

    Απ: Indexed Views & Rebuild


    ...δεν υπάρχει η τελευταία παράμετρος

    Η N'V'
    OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]   object_name' [ ,'object_type' ] )

    ' object_name ' : Is the object to be used. object_name is either varchar or nvarchar. If object_name is varchar, it is implicitly converted to nvarchar. Specifying the database and schema names is optional. ' object_type ' Is the schema-scoped object type. object_type is either varchar or nvarchar. If object_type is varchar, it is implicitly converted to nvarchar. --ΗΤΗ--
  •  27-12-2010, 22:06 61952 σε απάντηση της 61950

    Απ: Indexed Views & Rebuild

    Έχεις δίκιο για την object_id. Έτσι όπως το είδα στα γρήγορα δεν το προσεξα και το είδα σαν τριτη παραμετρο στο dm και επειδή αυτό δεν έχει το είπα αυτό τώρα που το προσεξα καλύτερα έχεις δίκιο αναφερεται στην Object_ID


    Antonios Chatzipavlis

  •  28-12-2010, 10:18 61959 σε απάντηση της 61944

    Απ: Indexed Views & Rebuild

    spaceman:

    Αν το παρακατω επιστρεφει εγγραφες, τοτε ο full text index εχει δημιουργηθει k populated κανονικα:

    SELECT * FROM sys.dm_fts_index_keywords(DB_ID(N'B2COnline'), OBJECT_ID(N'dbo.view_AutoCompleteAirports', N'V'))

    --ΗΤΗ--

    Λοιπόν, το έτρεξα και μου έφερε κανονικά ~4000 εγγραφές. Αν όμως τρέξω το script, φέρω τα δεδομένα και το τρέξω πάλι, για περίπου 1' δε φέρνει τίποτα.

    Antonios Chatzipavlis:

    Επίσης θα ήθελα να μας πεις αν η παρακάτω σου φέρνει εγγραφές, αν σου φέρνει θα ήθελα το αποτέλεσμα της plz.

    select * from sys.dm_fts_outstanding_batches

    Το έτρεξα αρχικά και δεν έφερε τίποτα... Μετά την εκτέλεση όλης της διαδικασίας κι αφού πέρασε 1' όπως και παραπάνω, έφερε μια εγγραφή:

    7 6 930102354 264 0x23057DC0 0x250E8040 0x00000000 0 0 0 NO RETRY 0 0x000000000000FF7E

     

    Το περίεργο είναι, ότι ενώ εχθές είχα αφήσει να περάσει και 1' και 30' και 2 ώρες, δεν έφερνε τίποτα. Σήμερα που δοκίμασα να τρέξω όλη τη διαδικασία πάλι απλά για να σας πω τι φέρουν οι δύο δικές σας γραμμές, φαίνεται να τρέχει κανονικά και σε μικρό χρόνο να κάνει το rebuild.

    Σας ευχαριστώ και τους δύο για την πολύτιμη βοήθεια και το χρόνο σας :)

  •  28-12-2010, 10:55 61961 σε απάντηση της 61959

    Απ: Indexed Views & Rebuild

    Λοιπόν, συνεχίζουν τα περίεργα... Όπως καταλαβαίνετε, μέσα στη βάση δεν υπάρχει μόνο ο πίκανας Airports αλλά και διάφοροι άλλοι όπως ο Stations. Ακολουθώντας ακριβώς την ίδια διαδικασία, έχω τα εξής:

    Το script του spaceman φέρνει ~3800 εγγραφές.

    Το script του Αντώνη δε φέρνει τίποτα.

    Το παρακάτω script επίσης δε φέρνει τίποτα ακόμα και μετά από 15':

    SELECT TOP 12 * FROM view_AutoCompleteStations AS FT_TBL WITH (NOLOCK) INNER JOIN
    	CONTAINSTABLE(view_AutoCompleteStations, *, @Keyword) AS KEY_TBL
    	ON FT_TBL.StationID = KEY_TBL.[KEY] ORDER BY RANK DESC;
     
    Δοκιμάζω μετά να κάνω όλη τη διαδικασία από την αρχή και πλέον δε φέρνει ούτε τα keywords... Τι κάνω λάθος...;
  •  28-12-2010, 12:46 61962 σε απάντηση της 61961

    Απ: Indexed Views & Rebuild

    Wizard!:

    Το script του spaceman φέρνει ~3800 εγγραφές.

    Ο full text index εχει δημιουργηθει

    Το script του Αντώνη δε φέρνει τίποτα.

    Το script θα γυρισει εγγραφες, αν υπαρχει ενεργη διεργασια που δημιουργει ft index.

     

    Το παρακάτω script επίσης δε φέρνει τίποτα ακόμα και μετά από 15':

    SELECT TOP 12 * FROM view_AutoCompleteStations AS FT_TBL WITH (NOLOCK) INNER JOIN
    	CONTAINSTABLE(view_AutoCompleteStations, *, @Keyword) AS KEY_TBL
    	ON FT_TBL.StationID = KEY_TBL.[KEY] ORDER BY RANK DESC;
    Το create statement του ft index ειναι:
    CREATE FULLTEXT INDEX ON dbo.[view_AutoCompleteAirports]
    .......KEY INDEX idx_AirPort_ID; 
    
    Αρα το .[KEY] του CONTAINSTABLE πρεπει να γινει JOIN στο [AirPortID]:
    SELECT TOP 12 * FROM view_AutoCompleteStations AS FT_TBL WITH (NOLOCK) INNER JOIN
    	CONTAINSTABLE(view_AutoCompleteStations, *, @Keyword) AS KEY_TBL
    	ON FT_TBL.Airport_ID = KEY_TBL.[KEY] ORDER BY RANK DESC;
    Χωρις να χρειαστει να κανεις join, μπορεις να δοκιμασεις κ το παρακατω
    SELECT * FROM CONTAINSTABLE(dbo.view_AutoCompleteStations, *, N'"*put a word here*"') AS KEY_TBL
    --HTH--
  •  28-12-2010, 13:06 61963 σε απάντηση της 61962

    Απ: Indexed Views & Rebuild

    Ναι, οκ, sorry, λάθος δικό μου. Φυσικά και το AirPort_ID γίνεται JOIN στην αντίστοιχη αναζήτηση, όπως και το Station_ID στη δική του.

    Μετά από αρκετό παίδεμα, κατέληξα ότι παίζει μεν, αλλά όχι σωστά δε... Δηλαδή... Αν κάνω αναζήτηση με 'ast' στα Ports, μου φέρνει μόνο την παρακάτω γραμμή όπου βρίσκει ΑΚΡΙΒΩΣ το 'ast'

    City PortID PortName PortCODE Notes
    ASTAKOS AST ETOLOAKARNANIA (Small town)

    ενώ δε μου φέρνει αυτή, που το 'ast' υπάρχει σε 2 στήλες και αρχίζουν ονομασίες από αυτό...

    City PortID PortName PortCODE Notes
    ASTYPALEA ASY DODEKANISSOS (Port)

Σελίδα 1 από 2 (18 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems