Δημιουργία ενός μοντέλου φυσικής βάσης δεδομένων: σχεδιασμός προϊόντων. Δημιουργία ενός μοντέλου φυσικής βάσης δεδομένων: Πίνακες διαχωρισμού προϊόντων στο SQL Server

Καλησπέρα / ημέρα / πρωί Αγαπητέ Habraloudi! Συνεχίζουμε να αναπτύσσουμε και να συμπληρώνουμε το blog για την αγαπημένη μου ανοιχτής πηγής rdbms postgresql. Ήταν θαυματουργό, έτσι αποδείχθηκε ότι το θέμα του σημερινού θέματος δεν έχει ακόμη αυξηθεί εδώ. Πρέπει να πω ότι το χωρισμό στην PostgreSQL περιγράφεται πολύ καλά στην τεκμηρίωση, αλλά θα με σταματήσει;).

Εισαγωγή

Σε γενικές γραμμές, υπό διαχωρισμό, γενικά, κατανοούν ότι δεν έχουν κάποια τεχνολογία, αλλά η προσέγγιση του σχεδιασμού της βάσης δεδομένων, η οποία εμφανίστηκε πολύ πριν το DBMS άρχισε να διατηρεί το λεγόμενο. Χωρισμένα τραπέζια. Η σκέψη είναι πολύ απλή - διαιρέστε το τραπέζι σε διάφορα μέρη μικρότερου μεγέθους. Υπάρχουν δύο υποείδη - οριζόντια και κάθετη διαμερίσματα.
Οριζόντια διαμερίσματα
Τμήματα του πίνακα περιέχουν διαφορετικές γραμμές. Μας θέτουμε ένα τραπέζι των κορμών μιας συγκεκριμένης αφηρημένης εφαρμογής - αρχεία καταγραφής. Μπορούμε να το σπάσουμε σε μέρη - ένα για τα αρχεία καταγραφής τον Ιανουάριο του 2009, το άλλο - για τον Φεβρουάριο του 2009 κ.λπ.
Κατακόρυφος
Τμήματα του πίνακα περιέχουν διαφορετικές στήλες. Βρείτε αίτηση για κάθετη διαχωρισμό (όταν είναι πραγματικά δικαιολογημένη) κάπως πιο περίπλοκη παρά για οριζόντια. Ως σφαιρικό άλογο, προτείνω να εξετάσω αυτή την επιλογή: ο πίνακας ειδήσεων έχει το αναγνωριστικό, το shorttext, το longtext και αφήστε το πεδίο LongText να χρησιμοποιείται πολύ λιγότερο από τα δύο πρώτα. Σε αυτή την περίπτωση, έχει νόημα να σπάσετε τον πίνακα ειδήσεων για τις στήλες (δημιουργήστε δύο πίνακες για σύντομοχο και longext, αντίστοιχα, σχετικά πρωτογενή κλειδιά + δημιουργία ειδήσεων προβολής που περιέχουν και τις δύο στήλες). Έτσι, όταν χρειαζόμαστε μόνο μια περιγραφή των ειδήσεων, το DBMS δεν χρειάζεται να διαβάσει από το δίσκο επίσης ολόκληρη την ειδήσεις κειμένου.
Υποστήριξη διαχωρισμού στο σύγχρονο DBMS
Το μεγαλύτερο μέρος των σύγχρονων DBMS υποστηρίζει το διαχωρισμό των πινάκων σε μία ή άλλη μορφή.
  • Μαντείο - Υποστηρίζει το διαμέρισμα που αρχίζει με 8 έκδοση. Εργασία με τμήματα Από τη μία πλευρά είναι πολύ απλή (γενικά, δεν μπορείτε να σκεφτείτε γι 'αυτούς, εργάζεστε με ένα κανονικό τραπέζι *), και από την άλλη - όλα είναι πολύ ευέλικτα. Τα τμήματα μπορούν να σπάσουν σε "subpartitions", διαγράψτε, διαίρεση, μεταφορά. Υποστηρίζονται διαφορετικές επιλογές για την ευρετηρίαση του διαχωρισμένου πίνακα (Παγκόσμιος δείκτης κατανομής ευρετηρίου). Αναφορά σε ογκώδη περιγραφή.
  • Microsoft SQL Server - Εμφανίστηκε πρόσφατα η ενιαία υποστήριξη (το 2005). Η πρώτη εντύπωση της χρήσης - "Λοιπόν, τέλος !! :)", το δεύτερο - "έργα, όλα φαίνεται να είναι εντάξει". Τεκμηρίωση στο MSDN.
  • Mysql - υποστηρίζει ξεκινώντας από την έκδοση 5.1.
  • Και τα λοιπά…
* -Είναι, βέβαια, υπάρχει ένα τυποποιημένο σύνολο δυσκολιών - να δημιουργήσει ένα νέο τμήμα εγκαίρως, παλιό να πετάξει, κλπ., Αλλά εξακολουθούν να είναι κάπως απλά και κατανοητά.

Χωρίζοντας στην PostgreSQL

Η κατανομή των πινάκων στην PostgreSQL είναι κάπως διαφορετική στις πωλήσεις από άλλες βάσεις δεδομένων. Η βάση για το διαμέρισμα είναι η κληρονομιά των πινάκων (το πράγμα που εγγυάται αποκλειστικά την PostgreSQL). Δηλαδή, πρέπει να έχουμε ένα κύριο τραπέζι (κύριο τραπέζι) και τα τμήματα της θα είναι τα τραπέζια κληρονόμου. Θα εξετάσουμε το διαχωρισμό για το παράδειγμα μιας εργασίας κατά προσέγγιση στην πραγματικότητα.
Διατύπωση του προβλήματος
Η βάση δεδομένων χρησιμοποιείται για τη συλλογή και ανάλυση δεδομένων στους επισκέπτες του ιστότοπου / ιστότοπου. Οι όγκοι δεδομένων είναι αρκετά μεγάλοι για να σκεφτούμε το διαχωρισμό. Κατά την ανάλυση, στις περισσότερες περιπτώσεις, τα δεδομένα χρησιμοποιούνται για την τελευταία ημέρα.
1. Δημιουργήστε έναν βασικό πίνακα:
Δημιουργία πίνακα αναλύσεων. Επίφρενε.

User_id uuid όχι ,
Το Event_type_id Smilint δεν ,
event_time timestamp προεπιλογή τώρα () όχι ,
URL varchar (1024) όχι μηδέν,
Παραπομπή VARCHAR (1024),
Ip inet όχι null
);

2. Θα χωρίσουμε την ημέρα από το πεδίο event_time. Για κάθε μέρα θα δημιουργήσουμε ένα νέο τμήμα. Θα καλέσουμε τα τμήματα σύμφωνα με τον κανόνα: Analytics.events_ddmmyyyy. Για παράδειγμα, ένα τμήμα για την 1η Ιανουαρίου 2010.
Δημιουργία πίνακα Analytics.Events_01012010.
EVENT_ID BEVINT Προεπιλεγμένο NextVal ("Analytics.seq_events") Πρωταρχικό κλειδί,
Check (event_time\u003e \u003d timestamp "2010-01-01 00:00:00" και event_time< TIMESTAMP "2010-01-02 00:00:00" )
) Κληρονομεί (Analytics.events).

* Αυτός ο πηγαίος κώδικας επισημάνθηκε με τον HighLighter πηγαίου κώδικα.


Κατά τη δημιουργία ενός τμήματος, καθορίζουμε ρητά το πεδίο Event_ID (το κύριο πλήκτρο δεν κληρονομείται) και δημιουργεί έναν περιορισμό ελέγχου στο πεδίο EVENT_TEME, ώστε να μην εισάγετε πάρα πολλά.

3. Δημιουργήστε ένα ευρετήριο στο πεδίο event_time. Κατά τη διάσπαση του πίνακα στην ενότητα, εννοούμε ότι τα περισσότερα αιτήματα στον πίνακα εκδηλώσεων θα χρησιμοποιήσουν την κατάσταση στο πεδίο Event_Time, έτσι ώστε ο δείκτης σε αυτό το πεδίο να μας βοηθήσει πάρα πολύ.

Δημιουργία συμβάντων δείκτη_01012010_event_time_idx on Analytics.Events_01012010 Χρήση Btree (Event_Time);

* Αυτός ο πηγαίος κώδικας επισημάνθηκε με τον HighLighter πηγαίου κώδικα.


4. Θέλουμε να διασφαλίσουμε ότι κατά την εισαγωγή στο κύριο τραπέζι, τα δεδομένα αποδείχθηκαν ως το τμήμα που προορίζεται για αυτούς. Για να το κάνετε αυτό, κάνουμε την επόμενη φαινόμενη - δημιουργήστε μια σκανδάλη που θα διαχειριστεί τις ροές δεδομένων.
Δημιουργία ή αντικατάσταση λειτουργίας Analytics.events_insert_trigger ()
Επιστρέφει το σκανδάλη ως $$
Να αρχίσει.
Εάν (νέα .event_time\u003e \u003d timestamp "2010-01-01 00:00:00" και
Νέο .event_Time.< TIMESTAMP "2010-01-02 00:00:00" ) THEN
Εισάγετε τις τιμές Analytics.Events_01012010 (νέα *);
ΑΛΛΟΥ.
Εξαίρεση "Η ημερομηνία% είναι εκτός εμβέλειας. Fix Analytics.events_insert_trigger", ΝΕΟ .Event_Time;
ΤΕΛΟΣ ΕΑΝ;
Επιστρέψτε null;
Τέλος;
$$
Γλώσσα plpgsql;

* Αυτός ο πηγαίος κώδικας επισημάνθηκε με τον HighLighter πηγαίου κώδικα.


Δημιουργήστε εκδηλώσεις σκανδάλης_before_insert.
Πριν από την εισαγωγή στο Analytics.Events
Για κάθε διαδικασία εκτελέσεως εκτελέσεως Analytics.events_insert_trigger ();

* Αυτός ο πηγαίος κώδικας επισημάνθηκε με τον HighLighter πηγαίου κώδικα.

5. Όλα είναι έτοιμα, έχουμε τώρα ένα διαχωρισμένο πίνακα αναλύσεων. Επίμων. Μπορούμε να ξεκινήσουμε βίαια να αναλύσουμε τα δεδομένα της. Με την ευκαιρία, ελέγξτε τους περιορισμούς που δημιουργήσαμε όχι μόνο για την προστασία των τμημάτων από εσφαλμένα δεδομένα. Το PostgreSQL μπορεί να τα χρησιμοποιήσει κατά την κατάρτιση ενός σχεδίου αίτησης (όμως, με ένα ευρετήριο διαβίωσης στο event_time, τα κέρδη θα του δώσουν το ελάχιστο), αρκεί να χρησιμοποιηθεί η οδηγία Constrint_Exclusion:

Ορίστε τον Constrint_Exclusion \u003d ON;
Επιλέξτε * από Analytics.Events όπου EVENT_TIME\u003e TETRUS_DATE;

* Αυτός ο πηγαίος κώδικας επισημάνθηκε με τον HighLighter πηγαίου κώδικα.

Τέλος του πρώτου μέρους
Τι έχουμε λοιπόν; Ας δούμε:
1. Πίνακας εκδηλώσεων, χωρισμένη σε τμήματα, η ανάλυση των διαθέσιμων δεδομένων κατά την τελευταία ημέρα γίνεται ευκολότερη και ταχύτερη.
2. Η τρόμος της συνειδητοποίησης ότι όλα αυτά πρέπει να διατηρήσουν με κάποιο τρόπο, να δημιουργήσουν τα τμήματα εγκαίρως, να μην ξεχνάμε να αλλάξουν ανάλογα τη σκανδάλη.

Σχετικά με το πόσο εύκολη και απρόσεκτη δουλειά με χωριστά τραπέζια θα πει στο δεύτερο μέρος.

UPD1: Αντικατάσταση διαχωρισμού διαχωρισμού
UPD2:
Σύμφωνα με τα σχόλια ενός από τους αναγνώστες που δεν έχουν, δυστυχώς, ο λογαριασμός στο Habré:
Με κληρονομιά, συνδέονται μερικές στιγμές, οι οποίες πρέπει να λαμβάνονται υπόψη κατά το σχεδιασμό. Τα τμήματα δεν κληρονομούν το κύριο κλειδί και τα εξωτερικά πλήκτρα στις στήλες τους. Δηλαδή, κατά τη δημιουργία ενός τμήματος, πρέπει να δημιουργήσετε ρητά πρωτογενή κλειδιά και ξένα κλειδιά στις στήλες ενότητας. Από τον εαυτό μου σημειώστε ότι η δημιουργία ξένου κλειδιού στις στήλες του διαχωρισμένου πίνακα δεν είναι ο καλύτερος τρόπος. Στις περισσότερες περιπτώσεις, ένας διαχωρισμένος πίνακας είναι ο "πίνακας των γεγονότων" και αναφέρεται στον πίνακα "διάσταση".

Το DBM της Oracle έχει την ευκαιρία Προβολές διαμερισμάτων. Η κύρια ιδέα είναι απλή. Αφήστε το φυσικό τραπέζι να χωριστεί σε διάφορους πίνακες (προαιρετικές μεθόδους Διαμέριση Πίνακες) σύμφωνα με το κριτήριο του διαμερίσματος, γεγονός που καθιστά την επεξεργασία ενός πιο παραγωγικού αιτήματος. Το κριτήριο του διαμερίσματος θα καλείται Καταμέτρηση διαχωρισμού. Στη συνέχεια, μπορείτε να δημιουργήσετε και να διαμορφώσετε τις προβολές με τέτοιο τρόπο ώστε με την πρόσβαση στη βοήθειά τους σε αυτούς τους πίνακες, είναι ευκολότερο για τον χρήστη. Το τμήμα παρουσίασης καθορίζεται σύμφωνα με το εύρος των τιμών. βασικό διαμέρισμα. Ζητήματα που χρησιμοποιούν το φάσμα των τιμών για τα δεδομένα δειγματοληψίας από τα τμήματα παρουσίασης θα έχουν πρόσβαση σε αυτά τα τμήματα που αντιστοιχούν στις κλίμακες τιμών βασικό διαμέρισμα.

Τα τμήματα παρουσίασης μπορούν να προσδιοριστούν με πρόβλεψη Διαμέρισηπου καθορίζονται είτε με τον περιορισμό του ελέγχου είτε χρησιμοποιώντας την προσφορά όπου προσφορά. Δείχνουμε πώς μπορούν να εφαρμοστούν και οι δύο δεξιώσεις, στο παράδειγμα ενός πολλαπλού τροποποιημένου πίνακα "πωλήσεων", τις οποίες έχουμε εξετάσει στην προηγούμενη ενότητα. Ας υποθέσουμε ότι τα στοιχεία πωλήσεων για το ημερολογιακό έτος τοποθετούνται σε τέσσερις ξεχωριστούς πίνακες, το καθένα από τα οποία αντιστοιχεί στο τέταρτο του έτους - Q1_Sales, Q2_Sales, Q3_Sales και Q4_Sales.

Παράδειγμα 20.14.

Με τον περιορισμό του ελέγχου. Χρησιμοποιώντας την εντολή Alter Table, μπορείτε να προσθέσετε περιορισμούς στη στήλη "Πώληση" (S_Date) κάθε πίνακα έτσι ώστε οι γραμμές του να αντιστοιχούν σε ένα από τα τρίμηνα του έτους. Η τότε δημιουργημένη αντιπροσωπεία πωλήσεων καθιστά δυνατή την επικοινωνία με αυτούς τους πίνακες, τόσο σε ένα όσο και σε όλα μαζί.

Alter Table Q1_Sales Προσθέστε τον περιορισμό C0 Check (S_Date μεταξύ "Jan-1-2002" και "Mar-31-2002"). Alter Table Q2_Sales Προσθέστε τον περιορισμό C1 Check (S_Date μεταξύ του "APR 1-2002" και "Jun-30-2002"). Alter Table Q3_Sales Προσθέστε τον περιορισμό C2 Check (S_Date μεταξύ του "Ιουλίου-1-2002" και "SEP-30-2002"). Alter Table Q4_Sales Προσθέστε τον περιορισμό C3 Check (S_Date μεταξύ "OCT-1-2002" και "Dec-31-2002"). Δημιουργία προβολής πωλήσεων_V ως επιλέξτε * από Q1Sales Union Alim Select * από Q3_Sales Union Alim Επιλέξτε * από Q4_Sales;

Το πλεονέκτημα αυτού Αντιπροσωπείες διαχωρισμού Είναι ότι το πρόβλεγμα των περιορισμών ελέγχου δεν εκτιμάται για κάθε συμβολοσειρά ερωτήματος. Τέτοιες προβλέψεις αποκλείουν την εισαγωγή στους πίνακες σειράς που δεν αντιστοιχούν στο κριτήριο του προβλήματος. Σειρές που αντιστοιχούν στην κατηγορία Διαμέριση, που εξάγεται από τη βάση δεδομένων ταχύτερα.

Παράδειγμα 20.15.

Διαχωρισμό των αναπαραστάσεων Χρησιμοποιώντας την προσφορά. Δημιουργήστε μια ιδέα για τους ίδιους πίνακες όπως στο παραπάνω παράδειγμα.

Δημιουργία προβολής πωλήσεων_V ως επιλέξτε * από Q1_Sales, όπου το S_Date μεταξύ της ένωσης "Jan-1-2002" και "Mar-31-2002" Union Select * από Q2_Sales όπου s_date μεταξύ "APR-1-2002" και "Jun-30-2002" Union All Select * από Q3_Sales όπου S_Date μεταξύ της ένωσης "Jul-1-2002" και "SEP-30-2002" Union Select * από Q4_Sales όπου S_Date μεταξύ "OCT-1-2002" και "Dec-31-2002".

Μέθοδος Αντιπροσωπείες διαχωρισμού Με τη βοήθεια του πού προσφέρει κάποια μειονεκτήματα. Πρώτον, το κριτήριο Διαμέριση Ελέγξτε κατά τη διάρκεια της εκτέλεσης για όλες τις γραμμές σε όλα τα τμήματα που καλύπτονται από το ερώτημα. Δεύτερον, οι χρήστες ενδέχεται να εισέρχονται λανθασμένα μια συμβολοσειρά που δεν είναι σε αυτή την ενότητα, δηλ. Τοποθετήστε μια συμβολοσειρά που σχετίζεται με το πρώτο τρίμηνο, το τρίτο τρίμηνο, το οποίο θα οδηγήσει σε λάθος δείγμα δεδομένων σχετικά με αυτά τα τρίμηνα.

Αυτή η ρεσεψιόν έχει και αξιοπρέπεια σε σύγκριση με τη χρήση ελέγχου ελέγχου. Μπορείτε να τοποθετήσετε ένα τμήμα που αντιστοιχεί στο σημείο όπου πρόκειται για μια απομακρυσμένη βάση δεδομένων. Το κομμάτι του ορισμού των σωληνώσεων εμφανίζεται παρακάτω.

Αποφασίζοντας τη δημιουργία, είναι απαραίτητο να θυμόμαστε τους ακόλουθους παράγοντες.

  • και διαγράψτε τα δεδομένα, να εργάζεστε στο επίπεδο του τμήματος και όχι ένα ολόκληρο βασικό τραπέζι.
  • Η πρόσβαση σε ένα από τα τμήματα δεν έχει καμία ενέργεια σε δεδομένα σε άλλα τμήματα.
  • Η Oracle DBMS έχει τις απαραίτητες ενσωματωμένες δυνατότητες αναγνώρισης χωρισμένες ιδέες.
  • Διαχωρισμό των αναπαραστάσεων Πολύ χρήσιμο όταν εργάζεστε με πίνακες που περιέχουν μεγάλο αριθμό ιστορικών δεδομένων.

Διαχωρισμός των πινάκων στο DBM της οικογένειας διακομιστή MS SQL

Δημιουργία καταμερισμένων πινάκων

Στο DBMS της οικογένειας διακομιστή MS SQL υποστήριξε επίσης επίσης Διαμέριση Πίνακες, δείκτες και παραστάσεις. Ωστόσο, σε αντίθεση με τα DBM της οικογένειας Oracle, Διαμέριση Τα DBM της οικογένειας διακομιστή MS SQL πραγματοποιούνται σύμφωνα με ένα ενοποιημένο σχήμα.

Στο MS SQL Server, όλοι οι πίνακες και οι δείκτες στη βάση δεδομένων θεωρούνται χωρισμένες, ακόμη και αν αποτελούνται από ένα μόνο τμήμα. Στην πραγματικότητα, τα τμήματα είναι μια βασική οργανωτική μονάδα στη φυσική αρχιτεκτονική των πινάκων και των δεικτών. Αυτό σημαίνει ότι η λογική και φυσική αρχιτεκτονική των πινάκων και των δεικτών, που περιλαμβάνει διάφορα τμήματα, αντανακλά πλήρως την αρχιτεκτονική των πινάκων και των δεικτών που αποτελούνται από ένα τμήμα.

Διαμέριση Οι πίνακες και οι δείκτες ερωτούν σκληρά σε επίπεδα γραμμών ( Διαμέριση Οι στήλες δεν επιτρέπονται) και επιτρέπει την πρόσβαση μέσω ενός ενιαίου σημείου εισόδου (όνομα πίνακα ή όνομα δείκτη) κατά τέτοιο τρόπο ώστε ο αριθμός εφαρμογών των τμημάτων να μην χρειάζεται να γνωρίζει στον κώδικα αίτησης. Διαμέριση Μπορεί να πραγματοποιηθεί στον βασικό πίνακα, καθώς και στους σχετικούς δείκτες.

Κάθε περιοχή τιμών στο τμήμα έχει σύνορα που ορίζονται στη δήλωση για τιμές. Εάν η ημερομηνία πώλησης ήταν στις 23 Ιουνίου 2006, η συμβολοσειρά θα αποθηκευτεί στο τμήμα 2 (Ρ2).

Τώρα δημιουργήστε Διαχωριστικό σύστημα. Διαχωριστικό σύστημα Εμφανίζει τμήματα σε διάφορες ομάδες αρχείων (με ονόματα Myfilegroup1, myfilegroup2, myfilegroup3, myfilegroup4), όπως φαίνεται στην ακόλουθη ομάδα:

Δημιουργία συστήματος διαμερίσματος MyPartitionScheme ως MyPartitionfunction στο (MyFilegroup1, MyFileGroup2, MyFilegroup3, MyFileGroup4)

Το MyPartitionScheme είναι ένα όνομα Τμήμα Σχέσεων, και το όνομα της MyPartitionfunction καθορίζει Λειτουργία διαχωρισμού. Αυτή η εντολή εμφανίζει δεδομένα σε τμήματα που σχετίζονται με μία ή περισσότερες ομάδες αρχείων. Σειρές με δεδομένα με τις τιμές των τιμών στήλης πώλησης (ημερομηνία ημερομηνίας_OF_Event) έως 1/01/05 σχετίζονται με το MyFileGroup1. Οι γραμμές αυτής της στήλης με τιμές, μεγάλες ή ίσες με 1/01/05 και 1/01/07, αντιστοιχίζονται στο MyFileGroup2. Σειρές με αξίες, μεγάλες ή ίσες με 1/01/07 και έως 1/01/09 σχετίζονται με το MyFileGroup3. Όλες οι άλλες γραμμές με τιμές μεγαλύτερες ή ίσες με το 1/01/09 σχετίζονται με το MyFileGroup4.

Για κάθε σύνολο οριακών τιμών (οι οποίες καθορίζονται από την κατάσταση για τιμές Λειτουργίες διαχωρισμού) Ο αριθμός των τμημάτων θα είναι "ο αριθμός των οριακών τιμών" + 1. Προηγούμενο πρόγραμμα διαμερίσματος περιλαμβάνει τρεις περιορισμούς και τέσσερα τμήματα. Ανεξάρτητα από το αν δημιουργούνται τμήματα με δεξιά ή κλίμακα φάσματος, ο αριθμός των τμημάτων θα είναι πάντα "ο αριθμός των οριακών τιμών" + 1, μέχρι 1000 τμήματα του πίνακα.

Τώρα μπορούμε να δημιουργήσουμε Χωρισμένο τραπέζι Γεγονότα "Πωλήσεις" (πωλήσεις). Πλάσμα Χωρισμένο τραπέζι Δεν είναι πολύ διαφορετική από τη δημιουργία ενός κανονικού πίνακα, πρέπει μόνο να ανατρέξετε στο όνομα Τμήμα Σχέσεων Στην υπόθεση, όπως φαίνεται στην παρακάτω ομάδα.

Δημιουργία πώλησης Πωλήσεων (Sales_ChB Bigint Ταυτότητα (1, 1) Πρωτογενής Δεν συγκεντρωθεί μη , cust_id bigint , prod_id bigint , store_id bigint , reg_id char (10) , time_of_event time , ποσότητα ακέραιος όχι , ποσό Dec (8 , 2) NOT NULL, DATE_OF_EVENT Ημερομηνία όχι NULL) στο MyPartitionScheme (Date_Of_Event)

Ορίζοντας ένα όνομα Τμήμα ΣχέσεωνΟ σχεδιαστής υποδεικνύει ότι ο πίνακας αυτός είναι ευρετήριο. Αυτό επιτρέπει στον σχεδιαστή να σχεδιάσει τη δομή του δείκτη με βάση τα διαιρεμένα δεδομένα και όχι με βάση όλα τα δεδομένα του πίνακα. Η δημιουργία ευρετηρίων διαχωρισμού συνεπάγεται τη δημιουργία ατομικών ισορροπημένων δένδρων σε διαχωρισμένους δείκτες. Ως αποτέλεσμα του διαχωρισμού των δεικτών, δημιουργούνται μικρότεροι δείκτες και Διαχειριστής BD. Ή η HD γίνεται πιο εύκολη η εξυπηρέτησή τους κατά τη διάρκεια της αλλαγής, προσθέστε και διαγράψτε δεδομένα.

Κατά τη δημιουργία ευρετηρίων διαχωρισμού, μπορείτε να δημιουργήσετε Ευθυγραμμισμένος ή Μη μηχάνημα δείκτες. Οι ευθυγραμμισμένοι δείκτες συνεπάγονται άμεση σύνδεση με τα δεδομένα διαχωρισμού δεδομένων. Στην περίπτωση μη εξυπηρετημένων δεικτών, έχει επιλεγεί ένα άλλο Διαχωριστικό σύστημα.

Από αυτές τις δύο μεθόδους, προτιμάται ένας ευθυγραμμισμένος δείκτης, ο οποίος επιλέγεται από προεπιλογή, αν μετά τη δημιουργία Χωρισμένο τραπέζι Οι δείκτες δημιουργούνται χωρίς να διευκρινιστούν άλλο Τμήμα Σχέσεων. Η χρήση ευθυγραμμισμένων δεικτών παρέχει την απαραίτητη ευελιξία για τη δημιουργία πρόσθετων τμημάτων στον πίνακα και επίσης σας επιτρέπει να μεταφέρετε το που ανήκει σε ένα συγκεκριμένο τμήμα σε άλλο τραπέζι. Για την επίλυση των περισσότερων εργασιών που σχετίζονται με Διαμέριση, απλά υποβάλετε αίτηση για δείκτες Διαχωριστικό σύστημα Πίνακες.

Παράδειγμα. 20.19.

Δημιουργήστε ένα χωρισμένο Μη περιορισμένος δείκτης στο χωρισμένος Πίνακας "Πωλήσεις" (πωλήσεις) από το προηγούμενο παράδειγμα 20.18.

Δημιουργία συστήματος διαμερίσματος index_primary_left_scheme ως διαμέρισμα index_left_partition όλα σε ()

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

Δημιουργία μη συγκρατημένου δείκτη cl_multiple_partition σε πολλαπλές_partition (cust_id) στο index_primary_left_scheme (cust_id)

Σε αυτό Μη συγκρατημένος δείκτης Ως ένα κλειδί ευρετηρίου, χρησιμοποιείται η στήλη "αναγνωριστή αγοραστή" (cust_id), το οποίο δεν είναι βασικό διαμέρισμα Πίνακες πωλήσεων.

Αποφάσεις O. Δείκτες διαχωρισμού Αποδεκτή από τον σχεδιαστή της HD στο στάδιο του σχεδιασμού ή στον διαχειριστή HD στο στάδιο λειτουργίας του HD. Σκοπός Δείκτες διαχωρισμού Είναι είτε η παροχή επιδόσεων ερωτήματος ή απλοποιεί τις διαδικασίες υποστήριξης δείκτη.

Σε αυτό το άρθρο, θα καταδείξω τα χαρακτηριστικά των σχεδίων εκτέλεσης ερωτημάτων κατά την πρόσβαση σε καταμερισμένους πίνακες. Παρακαλείστε να σημειώσετε ότι υπάρχει μεγάλη διαφορά μεταξύ των χωρισμένων πινάκων (τα οποία έχουν διατεθεί μόνο με τον SQL Server 2005) και τις καταμερισμένες προβολές (οι οποίες ήταν διαθέσιμες στον SQL Server 2000 και εξακολουθούν να είναι διαθέσιμα στο SQL Server 2005 και τις επόμενες εκδόσεις). Χαρακτηριστικά αιτήσεων για αιτήματα για καταμερισμένες απόψεις Θα αποδείξω σε άλλο άρθρο.

Πίνακας προβολής

Ας δημιουργήσουμε ένα απλό χωριστό πίνακα:

Δημιουργία λειτουργίας διαμερίσματος PF (Int) ως εύρος τιμών (0, 10, 100)

Δημιουργία συστήματος διαμερίσματος PS ως διαχωριστικό pf όλα σε ()

Δημιουργία πίνακα T (A Int, B int) στο PS (A)

Αυτό το σενάριο δημιουργεί ένα τραπέζι με τέσσερα τμήματα. Ο SQL Server ανέθεσε τις τιμές για να αναγνωριστεί κάθε μία από τις τέσσερις τομές όπως φαίνεται στον πίνακα:

Ptnid Αξίες.
1 Τ.α.<= 0
2 0 < t.a <= 10
3 10 < t.a <= 100
4 100 < t.a

Τώρα ας εξετάσουμε το σχέδιο ενός τέτοιου αιτήματος που θα ανάγκασε τη βελτιστοποίηση να χρησιμοποιήσει τη σάρωση πίνακα: πίνακας σάρωσης:


...... | -Constant Scan (τιμές: ((((1)), ((2)), ((3))))))
....... |- Σάρωση (αντικείμενο: ([t]))

Στο παραπάνω σχέδιο, ο SQL Server καθορίζει ρητά όλα τα αναγνωριστικά τμήματος στη δήλωση συνεχούς σάρωσης, η οποία εφαρμόζει την προβολή του πίνακα και παρέχει τα δεδομένα στον χειριστή για να συνδέσουν ένθετο κύκλους. Εδώ πρέπει να υπενθυμιστεί ότι ο χειριστής των μορφωμένων κύκλων εκτελεί το πέρασμα κατά μήκος του εσωτερικού πίνακα (σε αυτή την περίπτωση είναι μια πλήρης όψη του πίνακα) μία φορά για κάθε τιμή από τον εξωτερικό πίνακα (στην περίπτωση μας είναι "σταθερή σάρωση" ). Έτσι, εκτελούμε το τραπέζι που βλέπουμε τέσσερις φορές. Μία φορά για κάθε αναγνωριστικό τμήματος.

Θα πρέπει επίσης να σημειωθεί ότι η ένωση των φωτεινών κύκλων δείχνει σαφώς ότι ο εξωτερικός πίνακας είναι οι τιμές της στήλης όπου αποθηκεύεται η ταυτότητα των τμημάτων. Παρόλο που δεν είναι άμεσα ορατό στην προβολή κειμένου του σχεδίου εκτέλεσης (Δυστυχώς, μερικές φορές δεν παρατηρούμε αυτές τις πληροφορίες), η προβολή του πίνακα χρησιμοποιεί μια στήλη με αναγνωριστικά τμήματα που επιλέγονται για να ολοκληρώσουν την προβολή και να προσδιορίσουν ποια ενότητα για σάρωση. Αυτές οι πληροφορίες είναι πάντα διαθέσιμες στο γραφικό εκτέλεσης (πρέπει να εξετάσετε τις ιδιότητες του χειριστή προβολής του πίνακα), καθώς και στην προβολή XML του σχεδίου εκτέλεσης ερωτημάτων:

Στατικά τμήματα φιλτραρίσματος

Εξετάστε το ακόλουθο ερώτημα:

Επιλέξτε * από t όπου ένα< 100

| - Οι σύνδεσμοι (Εσωτερικές Συμφωνίες, Εξωτερικές Αναφορές :() Διαμέρισμα ID :())
....... | -Constant Scan (τιμές: ((1)), ((2)), ((3))))))
<(100)) PARTITION ID:())

Predicate "Α.<100» явно исключает все строки для секции со значением идентификатора равным 4. В данном случае, нет смысла в просмотре соответствующей секции, поскольку ни одна из строк этой секции не удовлетворяет условию предиката. Оптимизатор учитывает этот факт и исключает эту секцию из плана исполнения запроса. В операторе «Constant Scan» указаны только три секции. У нас принято называть это статической фильтрацией секций (static partition elimination), поскольку мы знаем, что во время компиляции список просматриваемых секций остаётся статичным.

Εάν όλα τα τμήματα αποκλείονται ως αποτέλεσμα του στατικού φιλτραρίσματος, εκτός από ένα, δεν θα χρειαστούμε σταθερά σάρωση και ένθετα βρόχους να συμμετάσχουν καθόλου τους φορείς εκμετάλλευσης:

Επιλέξτε * από t όπου ένα< 0

| - σάρωση (αντικείμενο: ([t]), όπου: ([t]. [A]<(0)) PARTITION ID:((1)))

Σημειώστε ότι το "αναγνωριστικό διαμερίσματος: ((1))" Καθορίζει το αναγνωριστικό του τμήματος που πρόκειται να προβληθεί, είναι πλέον μέρος του χειριστή προβολής πίνακα (πίνακας σάρωσης).

Δυναμικά τμήματα φιλτραρίσματος

Σε ορισμένες περιπτώσεις, ο SQL Server δεν μπορεί να προσδιορίσει ότι κατά τη στιγμή της σύνταξης, η σύνθεση των συγκεκριμένων τμημάτων δεν θα αλλάξει, αλλά μπορεί να φανεί ότι μπορούν να αποκλειστούν ορισμένα τμήματα.

Επιλέξτε * από t όπου ένα< @i

| - Οι σύνδεσμοι (Εσωτερικές Συμφωνίες, Εξωτερικές Αναφορές :() Διαμέρισμα ID :())
....... | -Περισσότερα (όπου :(<=RangePartitionNew([@i],(0),(0),(10),(100))))
....... | | -Constant Scan (τιμές: (((1)), ((2)), ((3))))))
................................<[@i]) PARTITION ID:())

Αυτό είναι ένα παραμετροποιημένο ερώτημα. Από πριν από την εκτέλεση της αξίας της παραμέτρου, δεν γνωρίζουμε (το γεγονός ότι χρησιμοποιώ μια σταθερά ως μια παράμετρος στον ίδιο batcher δεν αλλάζει τη θέση των αντικειμένων), τότε στο στάδιο σύνταξης δεν είναι δυνατόν να προσδιοριστεί το Αξία του αναγνωριστικού τμήματος για τον σταθερό χειριστή σάρωσης. Είναι δυνατόν να εξετάσουμε μόνο ένα τμήμα 1, ή θα είναι τμήματα 1 και 2, και ούτω καθεξής. Ως εκ τούτου, σε αυτόν τον χειριστή αναφέρονται και τα τέσσερα αναγνωριστικά τέσσερα τμήματα και χρησιμοποιούμε το φιλτράρισμα των αναγνωριστικών των τμημάτων στο στάδιο εκτέλεσης. Το ονομάζουμε "φιλτράρισμα δυναμικού τμήματος" (δυναμική εξάλειψη διαμερίσματος).

Το φίλτρο συγκρίνει κάθε αναγνωριστικό τμήματος με το αποτέλεσμα της λειτουργίας του ειδικού "εύρος ζώνης. Αυτή η λειτουργία υπολογίζει τα αποτελέσματα της εφαρμογής της λειτουργίας διαχωρισμού στην τιμή παραμέτρου. Τα επιχειρήματα αυτής της λειτουργίας (αριστερά προς τα δεξιά) είναι:

  • Αξία (σε αυτή την περίπτωση, η παράμετρος @I), η οποία θέλουμε να εμφανίσουμε στο αναγνωριστικό του τμήματος.
  • Η σημαία Boolean που υποδεικνύει αν η λειτουργία διαχωρισμού εμφανίζεται στα αριστερά (0) ή στα δεξιά (1).
  • Οι οριακές τιμές των τμημάτων (στην περίπτωση αυτή είναι 0, 10 και 100).

Σε αυτό το παράδειγμα, δεδομένου ότι @I έχει μια τιμή 0, το αποτέλεσμα "RangePartitionNew" είναι 1. Έτσι, βλέπουμε μόνο ένα τμήμα με ένα αναγνωριστικό 1. Σημειώστε ότι, σε αντίθεση με ένα παράδειγμα με στατικό φιλτράρισμα των τμημάτων, αν και σαρώνουμε μόνο ένα Διαμερίσματα, εμείς - Εμείς, έχουμε "σταθερή σάρωση" και "ένθετο βρόχους". Ως εκ τούτου, χρειαζόμαστε από αυτούς τους φορείς εκμετάλλευσης, ότι πριν από το βήμα εκτέλεσης, δεν γνωρίζουμε τα τμήματα που θα εξεταστούν.

Σε ορισμένες περιπτώσεις, η βελτιστοποίηση ήδη στο στάδιο της σύνταξης μπορεί να καθορίσει ότι θα σαρώσουμε μόνο ένα τμήμα, ακόμη και αν δεν μπορεί να καθορίσει ποιο. Για παράδειγμα, εάν το ερώτημα χρησιμοποιεί μια τιμή ισοδυναμίας σε ένα κλειδί διαμερίσματος, τότε γνωρίζουμε ότι μόνο ένα τμήμα μπορεί να ικανοποιήσει μια τέτοια κατάσταση. Ως εκ τούτου, παρά το γεγονός ότι έπρεπε να έχουμε δυναμική φιλτραρίσματος των τμημάτων, έχουμε την ανάγκη για σταθερά χειριστές σάρωσης και έννομη ένωση βρόχων. Παράδειγμα:

Επιλέξτε * από t όπου a \u003d @i

| - Σάρωση (αντικείμενο: ([t]), όπου: ([t]. [A] \u003d [@ i]) ID: (RangePartitionNew (0), (0), (0), (0), (0) ), (100))))

Ο συνδυασμός στατικού και δυναμικού φιλτραρίσματος των τμημάτων

Το SQL Server μπορεί να συνδυάσει τα στατικά και δυναμικά τμήματα φιλτράρισμα σε ένα σχέδιο αίτησης:

Επιλέξτε * από t όπου a\u003e 0 και a a< @i

| - Οι σύνδεσμοι (Εσωτερικές Συμφωνίες, Εξωτερικές Αναφορές :() Διαμέρισμα ID :())
...... | -Πολύτης (όπου :(<=RangePartitionNew([@i],(0),(0),(10),(100))))
...... | | -Constant Scan (τιμές: (((2)), ((3)), ((4)))))
...... | "|" ανίχνευση "(αντικείμενο: ([t]), όπου: ([t]. [A]<[@i] AND [t].[a]>(0)) ID διαμέρισμα :())

Παρακαλείστε να σημειώσετε ότι στο τελευταίο υπάρχει ένα στατικό φιλτράρισμα της ενότητας ID \u003d 1 χρησιμοποιώντας "σταθερή σάρωση" και υπάρχει επίσης ένα δυναμικό φιλτράρισμα για άλλα τμήματα που ορίζονται από τις προβλέψεις.

$ Διαμέρισμα

Μπορείτε να καλέσετε ρητά τη λειτουργία RangePartitionNew χρησιμοποιώντας $ διαμέρισμα:

Επιλέξτε *, $ partition.pf (a) από t

| -Compute Scalar (ορισμός: (\u003d εύρος της περιοχήςPartitionNew ([t]. [A], (0), (0), (10), (0)))))))))))))))))))))))))))))))))))))).
...... | -Εμφανισμένοι βρόχοι (εσωτερική σύνδεση, εξωτερικές αναφορές :() Διαχωριστικό αναγνωριστικό :())
......... .. | -Constant Scan (τιμές: ((1)), ((2)), ((3))))).
......... .. | - μια σάρωση (αντικείμενο: ([t]))

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

Επιπλέον πληροφορίες

Στις σύγχρονες συνθήκες, είναι πολύ περίεργο να ακούσουμε μερικές φορές "Πρέπει να γυρίσουμε τη βάση δεδομένων 1C - ο όγκος του υπερβαίνει τα 50 GB." Εάν πρόκειται να κάνει τα συστήματα SAP R3 ή Oracle E Business Suite ή ακόμα και το MS Dynamic Ax, πιθανότατα θα απολυθούν. Ωστόσο, για το 1C είναι μια "τυπική πρακτική".

Για εκδόσεις αρχείων, η ιστορία εκτείνεται από την έκδοση 1C 7.7 με περιορισμό 2GB έως το μέγεθος της βάσης. Τώρα ο περιορισμός 2GB βρίσκεται ήδη στο μέγεθος του πίνακα, το μέγεθος του αρχείου μπορεί ήδη να είναι πολύ και πολύ μικρό. Αληθινή, αν η βάση έχει αυξηθεί σε αυτό το μέγεθος, τότε πιθανότατα τα δεδομένα εισήχθησαν ενεργά - ίσως πρέπει να σκεφτείτε τον εξυπηρετητή του πελάτη;

Στην πραγματικότητα, ο σκοπός αυτού του άρθρου είναι να «αποθαρρύνει» από την εκτέλεση μιας συνέλιξης της βάσης δεδομένων των χρηστών της έκδοσης του πελάτη-server 1C, λόγω της χρήσης αρκετών περισσότερων "προηγμένων τεχνολογιών".

Ο τελικός αριθμός λαμβάνεται 30-40 τόνοι. Τουλάχιστον 20-25 στην περίπτωση της αγοράς ενός σκληρού δίσκου και η λήψη 500 GB ενός επιπλέον τόπου

Επομένως, εμφανίζονται προϊόντα
Καλά πιθανώς προϊόντα και οι στόχοι σας εκτελούνται. Αυτή είναι μόνο η δομή των πινάκων από την έκδοση στην έκδοση πλατφόρμας. 1C Μιλάμε για αυτό περισσότερες από μία φορές. Ο διαχωριστής δεδομένων εμφανίστηκε στην 14η απελευθέρωση και όλα ... πιθανότατα αυτή η επεξεργασία για 14 απελευθέρωση δεν είναι πλέον κατάλληλη. Και τρομακτικό κάπως, για να μην αναφέρουμε την παραβίαση της συμφωνίας άδειας χρήσης.

Και ακόμα και μετά, υπάρχουν χρήστες που είχαν ξαφνικά χρειάστηκαν "διαγραμμένα δεδομένα που" απλά ήθελαν να διορθώσουν "Kaku είναι ένας ιστός που" δεν επηρεάζει το διαδοχικό "στο κλειστό έγγραφο περιόδου. Και χειρότερα, αν αποδειχθεί ότι κάποιος, αυτά τα έγγραφα παρακολούθησαν συνεχώς για ορισμένους μόνο τους στόχους LED. Φυσικά, όλα είναι μόνο λάθη στη μέθοδο της εργασίας, αλλά παρ 'όλα αυτά θα υπάρξει δυσαρέσκεια με τους χρήστες.


-
Ανοιχτό στούντιο διαχείρισης στη λίστα βάσεων δεδομένων που επιλέγετε το επιθυμητό, \u200b\u200bανοίξτε τις ιδιότητές του.
- Μεταβείτε στην καρτέλα Ομάδες αρχείων όπως φαίνεται στο σχήμα και προσθέστε μια άλλη ομάδα αρχείων (στο παράδειγμα που ονομάζεται δευτερεύουσα)

- Μεταβείτε στην καρτέλα "Αρχεία" και προσθέστε ένα νέο αρχείο για το οποίο επιλέγετε την ομαδική ομάδα αρχείων. Αυτό το αρχείο Μπορεί να βρίσκεται σε έναν άλλο δίσκο


-
Τώρα χρησιμοποιώντας την επεξεργασία για παράδειγμα: Προσδιορίστε τους πίνακες που μπορούμε να "δωρίουμε" σε μια βραδύτερη (καλά ή αντίθετα, όλα είναι στο αργό, το υπόλοιπο-σε ταχύτερο) μεταφορέα. Ο κανόνας 80/20 είναι έγκυρος. Το 80% των εργασιών διεξάγεται με το 20% των δεδομένων, οπότε σκεφτείτε τι είδους πιάτα χρειάζεστε γρήγορα, και τα οποία δεν είναι πολύ. Για περισσότερες πληροφορίες ", τα έγγραφα εισόδου για τα υπόλοιπα εισόδου, τα έγγραφα που δεν χρησιμοποιούν πλέον αμέσως καθορίζουν τον τρόπο με τον οποίο αυτά που μπορούν να μεταφερθούν στην" αργή "ομάδα αρχείων.

Επιλέξτε τον πίνακα που θέλετε να μεταφέρετε σε άλλη ομάδα αρχείων - επιλέξτε το μενού αλλαγών στον πίνακα (έργο) και στις ιδιότητες Αλλαγή της ομάδας αρχείων:

Οι δείκτες του πίνακα μεταφέρονται επίσης σε αυτήν την ομάδα αρχείων.
Ένας επαρκώς βολικός μηχανισμός διανομής των πινάκων σε μια διάταξη δίσκου διαφορετικών ταχυτήτων. Η παρούσα συμφωνία δεν αντίκειται στη συμφωνία άδειας χρήσης, διότι Κατά την απόφαση, δεν χρησιμοποιούμε πρόσβαση σε δεδομένα και στην ενημερωτική βάση με άλλα κεφάλαια εκτός από την πλατφόρμα 1C. Οργανώνουμε μόνο την αποθήκευση αυτών των δεδομένων.


DBCC Traceon (1807)

Γράφουμε αυτή την εντολή στο Studio Management, πραγματοποιούμε και μπορούμε να δημιουργήσουμε με επιτυχία βάσεις δεδομένων μέσω του δικτύου. Φυσικά, η περίπτωση του SQL Server-a πρέπει να ξεκινήσει εξ ονόματος του λογαριασμού τομέα και αυτή η καταχώρηση πρέπει να είναι η δεξιά στο επιθυμητό φάκελο δικτύου.
Αλλά σας ζητώ να είστε πολύ προσεκτικοί όταν χρησιμοποιείτε αυτήν την εντολή εάν το δίκτυο εξαφανιστεί όταν εργάζεστε με τη βάση δεδομένων, ολόκληρη η βάση δεδομένων κατά τη διάρκεια της απουσίας του δεν θα είναι διαθέσιμη. Η Microsoft δεν είναι μάταια έκλεισε αυτή την ευκαιρία για μαζική χρήση. Γενικά, αυτή η λειτουργία θεωρείται ότι δημιουργεί βάσεις δεδομένων στις εγκαταστάσεις αποθήκευσης NAS, οι οποίες συνιστώνται επίσης. Θα ταιριάζει επίσης σε ένα σταθερό και αξιόπιστο διακομιστή αρχείων που έχει άμεση σύνδεση με τον διακομιστή στο οποίο λειτουργεί η MS SQL DBMS.
Περισσότερα για άλλες σημαίες ιχνών μπορείτε να βρείτε στο άρθρο http://msdn.microsoft.com/ru-ru/library/ms188396.aspx
Εκείνοι. Μέρος της ομάδας αρχείων μπορεί να αποθηκευτεί εντελώς στο δίκτυο και υπάρχει χώρος στο δίσκο χωρίς προβλήματα.

Ξεχωριστά τραπέζια σε διαφορετικές ομάδες αρχείων φυσικά καλά ... αλλά λέτε ότι υπάρχουν δύο τραπέζια ... τα οποία έχουν σχεδιαστεί από το 2005 ... και ήδη καταλαμβάνουν με δώδεκα gigabytes .. εδώ είναι όλα τα δεδομένα σε αυτά και βάλτε ένα ξεχωριστό δίσκο, αλλά η άδεια ρεύματος.
Δεν θα πιστέψετε, αλλά είναι επίσης δυνατή, αν και όχι πολύ απλή:

Δημιουργία Funkuction της διαχωριστικής κατά την ημερομηνία:

Δημιουργία μέτρων λειτουργίας Partime (DateTime)
Ως δικαίωμα εύρους για τιμές ("20110101").

Όλα αυτά μέχρι το 2011 θα πέσει σε ένα τμήμα, όλα όσα είναι σε άλλο.

Δημιουργήστε ένα σύστημα διαχωρισμού

Δημιουργία συστήματος διαμερισμάτων
Ως έτος κατανομής σε (δευτεροβάθμια, πρωτογενή) ·

Αυτά λένε ότι όλα τα δεδομένα μέχρι τα 11 χρόνια θα πέσουν στην ομάδα αρχείων "δευτερεύοντα" και μετά - στο "πρωτογενές"

Τώρα ο πίνακας παραμένει στην ανοικοδόμηση με τη διαίρεση σε τμήματα. Για να το κάνετε αυτό, ο ευκολότερος τρόπος είναι να χρησιμοποιήσετε το διαχειριστικό στούντιο τώρα, επειδή η διαδικασία δεν είναι απλή. Πρέπει να αποκαταστήσετε τον δείκτη συμπλέγματος για έναν πίνακα (ο οποίος είναι ουσιαστικά ο ίδιος ο πίνακας) επιλέγοντας το δημιουργημένο σχήμα διαχωρισμού για τον δείκτη:

Στην εικόνα βλέπετε ότι η επιλογή δεν είναι διαθέσιμη - όλα είναι σωστά, Το ενιαίο διαμέρισμα είναι δυνατή μόνο στην έκδοση του Enterprise MS SQL Server. Δείκτης συμπλέγματος για να διακρίνει εύκολα - μια εικόνα με στρογγυλά στηρίγματα. Για το pH και όλα τα αντικείμενα 1C δημιουργείται. Για τον δείκτη συμπλέγματος PH κατά την περίοδο υπάρχει πάντα. Για τα έγγραφα και τα βιβλία αναφοράς, θα ήταν φυσικά φυσικά να δημιουργηθεί ένα άλλο, το οποίο περιλαμβάνει τα στηρίγματα στα οποία θα χωριστούν ... αλλά θα αποτελέσει ήδη παραβίαση της συμφωνίας άδειας χρήσης.

Αλλά γι 'αυτό δεν χρειάζεται να ενεργοποιήσετε τη βάση δεδομένων, αλλά κάνετε τα εξής:
α) Εξηγήστε σε όλους τους τρόπους να χρησιμοποιήσετε τις επιλογές καθώς επιμένουν πώς να χρησιμοποιήσουν τα διαστήματα του περιοδικού καθώς επιμένουν
β) Σημειώστε για την κατάργηση περιττών δεδομένων εάν δεν μεταφέρουν κανένα σημασιολογικό φορτίο (αντισυμβαλλομένοι και η ονοματολογία με την οποία δεν λειτουργούν εξαιρετικά) - αυτό θα φέρει στους χρήστες περισσότερα οφέλη από μια συνέλιξη. Εάν έχετε τους πόρους για να διαγράψετε μια αυτόματη σημείωση για να διαγράψετε τα αχρησιμοποίητα αντικείμενα και να κάνετε την προεπιλεγμένη επιλογή στον κωδικό προγράμματος, ώστε να μην εμφανίζεται από προεπιλογή που δεν είναι απαραίτητο για τα αντικείμενα των χρηστών - επισημαίνονται για απομάκρυνση
γ) Διαμορφώστε άλλη χρήσιμη "προεπιλεγμένη επιλογή" - για παράδειγμα, ο καθένας προεπιλεγμένος διαχειριστής έχει μόνο τα δικά του έγγραφα. Και αν θέλετε να δείτε τα έγγραφα "Comrade" - πρέπει να απενεργοποιήσετε την επιλογή.

Σε όλες τις λεπτομέρειες που συμμετέχουν στην επιλογή, μην ξεχάσετε να τοποθετήσετε ένα σημάδι "Δείκτης από την προσθήκη. Παραγγελία" - Στη συνέχεια, στην απόδοση του συστήματος, αυτές οι "ανέσεις" δεν θα επηρεάσουν.

Συνεχίζοντας το θέμα:
συσκευές

Γνωρίστε το online παιχνίδι Invaders Galaxy (Galaxy Invaders) - η σύγχρονη εκδοχή του καλύτερου παιχνιδιού ρετρό του είδους του Space Invaders (Space Invaders). Αυτό είναι ένα παλιό καλό ...