Creare tabelle e indici partizionatiCreate Partitioned Tables and Indexes

Utilizzando SQL Server 2017SQL Server 2017 o SQL Server Management StudioSQL Server Management Studio è possibile creare una tabella o un indice partizionato in Transact-SQLTransact-SQL.You can create a partitioned table or index in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. I dati delle tabelle e degli indici partizionati vengono suddivisi orizzontalmente in unità che possono essere distribuite in più filegroup di un database.The data in partitioned tables and indexes is horizontally divided into units that can be spread across more than one filegroup in a database. Il partizionamento semplifica la gestione delle tabelle e degli indici di grandi dimensioni e li rende più scalabili.Partitioning can make large tables and indexes more manageable and scalable.

La creazione di una tabella o di un indice partizionato richiede generalmente quattro operazioni:Creating a partitioned table or index typically happens in four parts:

  1. Creazione di uno o più filegroup e dei file corrispondenti in cui saranno incluse le partizioni specificate dal relativo schema.Create a filegroup or filegroups and corresponding files that will hold the partitions specified by the partition scheme.

  2. Creazione di una funzione di partizione tramite cui viene eseguito il mapping delle righe di una tabella o di un indice alle partizioni in base ai valori della colonna specificata.Create a partition function that maps the rows of a table or index into partitions based on the values of a specified column.

  3. Creazione di uno schema di partizione tramite cui viene eseguito il mapping delle partizioni di una tabella o un indice partizionato ai nuovi filegroup.Create a partition scheme that maps the partitions of a partitioned table or index to the new filegroups.

  4. Creazione o modifica di una tabella o un indice e specificazione dello schema di partizione come percorso di archiviazione.Create or modify a table or index and specify the partition scheme as the storage location.

    Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • L'ambito di una funzione e di uno schema di partizione è limitato al database in cui sono stati creati.The scope of a partition function and scheme is limited to the database in which they have been created. All'interno del database le funzioni di partizione si trovano in uno spazio dei nomi separato rispetto ad altre funzioni.Within the database, partition functions reside in a separate namespace from other functions.

  • Se in qualsiasi riga all'interno di una funzione di partizione sono disponibili colonne di partizionamento con valori Null, queste righe vengono allocate alla partizione più a sinistra.If any rows within a partition function have partitioning columns with null values, these rows are allocated to the left-most partition. Tuttavia, se è specificato NULL come valore limite ed è indicato RIGHT, la partizione più a sinistra rimane vuota e i valori NULL vengono collocati nella seconda partizione.However, if NULL is specified as a boundary value and RIGHT is indicated, the left-most partition remains empty and NULL values are placed in the second partition.

Sicurezza Security

Autorizzazioni Permissions

La creazione di una tabella partizionata richiede l'autorizzazione CREATE TABLE per il database e l'autorizzazione ALTER per lo schema in cui viene creata la tabella.Creating a partitioned table requires CREATE TABLE permission in the database and ALTER permission on the schema in which the table is being created. La creazione di un indice partizionato richiede l'autorizzazione ALTER per la tabella o la vista in cui viene creato l'indice.Creating a partitioned index requires ALTER permission on the table or view where the index is being created. Per la creazione di una tabella o un indice partizionato è richiesta una delle seguenti autorizzazioni aggiuntive:Creating either a partitioned table or index requires any one of the following additional permissions:

  • Autorizzazione ALTER ANY DATASPACE.ALTER ANY DATASPACE permission. Questa autorizzazione viene concessa per impostazione predefinita al ruolo predefinito del server sysadmin e ai ruoli predefiniti del database db_owner e db_ddladmin .This permission defaults to members of the sysadmin fixed server role and the db_owner and db_ddladmin fixed database roles.

  • Autorizzazione CONTROL o ALTER per il database in cui vengono creati la funzione e lo schema di partizione.CONTROL or ALTER permission on the database in which the partition function and partition scheme are being created.

  • Autorizzazione CONTROL SERVER o ALTER ANY DATABASE per il server del database in cui vengono creati la funzione e lo schema di partizione.CONTROL SERVER or ALTER ANY DATABASE permission on the server of the database in which the partition function and partition scheme are being created.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per creare uno o più filegroup, i file corrispondenti e una tabella attenersi ai passaggi della procedura riportata di seguito.Follow the steps in this procedure to create one or more filegroups, corresponding files, and a table. Gli oggetti della procedura descritta di seguito verranno utilizzati come riferimento quando si crea la tabella partizionata.You will reference these objects in the next procedure when you create the partitioned table.

Per creare nuovi filegroup per una tabella partizionataTo create new filegroups for a partitioned table

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sul database in cui si vuole creare una tabella partizionata e scegliere Proprietà.In Object Explorer, right-click the database in which you want to create a partitioned table and select Properties.

  2. Nella finestra di dialogo Proprietà database - nome_database selezionare Filegroupin Selezione pagina.In the Database Properties – database_name dialog box, under Select a page, select Filegroups.

  3. In Righefare clic su Aggiungi.Under Rows, click Add. Nella nuova riga immettere il nome del filegroup.In the new row, enter the filegroup name.

    Avviso

    Durante la creazione di partizioni, è necessario disporre sempre di un filegroup aggiuntivo oltre al numero di filegroup specificati per i valori limite.You must always have one extra filegroup in addition to the number of filegroups specified for the boundary values when you are creating partitions.

  4. Continuare ad aggiungere righe finché non vengono creati tutti i filegroup per la tabella partizionata.Continue adding rows until you have created all of the filegroups for the partitioned table.

  5. Scegliere OK.Click OK.

  6. In Selezione paginaselezionare File.Under Select a page, select Files.

  7. In Righefare clic su Aggiungi.Under Rows, click Add. Nella nuova riga immettere un nome di file e selezionare un filegroup.In the new row, enter a filename and select a filegroup.

  8. Continuare ad aggiungere righe finché non viene creato almeno un file per ogni filegroup.Continue adding rows until you have created at least one file for each filegroup.

  9. Espandere la cartella Tabelle e creare una tabella normalmente.Expand the Tables folder and create a table as you normally would. Per altre informazioni, vedere Creare tabelle (Motore di database).For more information, see Create Tables (Database Engine). In alternativa, è possibile specificare una tabella esistente nella procedura descritta di seguito.Alternatively, you can specify an existing table in the next procedure.

Per creare una tabella partizionataTo create a partitioned table

  1. Fare clic con il pulsante destro del mouse sulla tabella che si vuole partizionare e scegliere Archiviazionee quindi selezionare Create Partition (Crea partizione).Right-click the table that you wish to partition, point to Storage, and then click Create Partition….

  2. Nella pagina Creazione guidata partizionedella relativa procedura guidata fare clic su Avanti . *In the *Create Partition Wizard, on the Welcome to the Create Partition Wizard page, click Next.

  3. Nella griglia Colonne di partizionamento disponibili della pagina Seleziona una colonna di partizionamento selezionare la colonna in cui partizionare la tabella.On the Select a Partitioning Column page, in the Available partitioning columns grid, select the column on which you want to partition your table. Nella griglia Colonne di partizionamento disponibili verranno visualizzate solo le colonne con i tipi di dati che possono essere utilizzati per partizionare dati.Only columns with data types that can be used to partition data will be displayed in the Available partitioning columns grid. Se come colonna di partizionamento se ne sceglie una calcolata, la colonna deve essere definita come persistente.If you select a computed column as the partitioning column, the column must be designated as a persisted column.

    Le scelte disponibili per la colonna di partizionamento e per l'intervallo di valori sono determinate innanzitutto dalla possibilità di raggruppare i dati in modo logico.The choices you have for the partitioning column and the values range are determined primarily by the extent to which your data can be grouped in a logical way. È possibile, ad esempio, scegliere di dividere i dati in raggruppamenti logici in base ai mesi o ai trimestri di un anno.For example, you may choose to divide your data into logical groupings by months or quarters of a year. Le query che verranno eseguite sui dati consentiranno di determinare se questo raggruppamento logico sia appropriato per la gestione delle partizioni delle tabelle.The queries you plan to make against your data will determine whether this logical grouping is adequate for managing your table partitions. Come colonne di partizionamento possono essere usati tutti i tipi di dati tranne text, ntext, image, xml, timestamp, varchar(max), nvarchar(max), varbinary(max), tipi di dati alias o tipi di dati CLR definiti dall'utente.All data types are valid for use as partitioning columns, except text, ntext, image, xml, timestamp, varchar(max), nvarchar(max), varbinary(max), alias data types, or CLR user-defined data types.

    In questa pagina sono disponibili le seguenti opzioni aggiuntive:The following additional options are available on this page:

    Colloca tabella nella tabella partizionata selezionataCollocate this table to the selected partitioned table
    Consente di selezionare una tabella partizionata contenente dati correlati e di creare un join con la tabella nella colonna di partizionamento.Allows you to select a partitioned table that contains related data to join with this table on the partitioning column. Le query sulle tabelle con partizioni unite nelle colonne di partizionamento vengono in genere eseguite in modo più efficiente.Tables with partitions joined on the partitioning columns are typically queried more efficiently.

    Allinea nello spazio di archiviazione indici univoci e non univoci con una colonna di partizione indicizzataStorage-align non-unique indexes and unique indexes with an indexed partition column
    Consente di allineare tutti gli indici della tabella partizionati con lo stesso schema di partizione.Aligns all indexes of the table that are partitioned with the same partition scheme. Quando una tabella e i relativi indici sono allineati, è possibile spostare in modo più efficace le partizioni all'interno e all'esterno delle tabelle partizionate, in quanto i dati vengono partizionati con lo stesso algoritmo.When a table and its indexes are aligned, you can move partitions in and out of partitioned tables more effectively, because your data is partitioned with the same algorithm.

    Dopo aver selezionato la colonna di partizionamento e qualsiasi altra opzione, fare clic su Avanti.After selecting the partitioning column and any other options, click Next.

  4. In Seleziona funzione di partizione della pagina Seleziona una funzione di partizionefare clic su Nuova funzione di partizione o Funzione di partizione esistente.On the Select a Partition Function page, under Select partition function, click either New partition function or Existing partition function. Se si sceglie Nuova funzione di partizione, immettere il nome della funzione.If you choose New partition function, enter the name of the function. Se si sceglie Funzione di partizione esistente, selezionare nell'elenco il nome della funzione che si desidera utilizzare.If you choose Existing partition function, select the name of the function you’d like to use from the list. L'opzione Funzione di partizione esistente non sarà disponibile se non sono presenti altre funzioni di partizione nel database.The Existing partition function option will not be available if there are no other partition functions on the database.

    Dopo aver completato questa pagina, fare clic su Avanti.After completing this page, click Next.

  5. In Seleziona schema di partizione della pagina Seleziona uno schema di partizionefare clic su Nuovo schema di partizione o Schema di partizione esistente.On the Select a Partition Scheme page, under Select partition scheme, click either New partition scheme or Existing partition scheme. Se si sceglie Nuovo schema di partizione, immettere il nome dello schema.If you choose New partition scheme, enter the name of the scheme. Se si sceglie Schema di partizione esistente, selezionare nell'elenco il nome dello schema che si desidera utilizzare.If you choose Existing partition scheme, select the name of the scheme you’d like to use from the list. L'opzione Schema di partizione esistente non sarà disponibile se non sono presenti altri schemi di partizione nel database.The Existing partition scheme option will not be available if there are no other partition schemes on the database.

    Dopo aver completato questa pagina, fare clic su Avanti.After completing this page, click Next.

  6. In Intervallo della pagina Esegui mapping partizioniselezionare Limite sinistro o Limite destro per specificare se includere il valore di delimitazione superiore o inferiore all'interno di ogni filegroup creato.On the Map Partitions page, under Range, select either Left boundary or Right boundary to specify whether to include the highest or lowest bounding value within each filegroup you create. Durante la creazione di partizioni, è necessario immettere sempre un filegroup aggiuntivo oltre al numero di filegroup specificati per i valori limite.You must always enter one extra filegroup in addition to the number of filegroups specified for the boundary values when you are creating partitions.

    In Filegroup nella griglia Selezionare i filegroup e specificare i valori limiteselezionare il filegroup in cui si desidera partizionare i dati.In the Select filegroups and specify boundary values grid, under Filegroup, select the filegroup into which you want to partition your data. In Limiteimmettere il valore limite per ogni filegroup.Under Boundary, enter the boundary value for each filegroup. Se il valore limite viene lasciato vuoto, la funzione di partizione consente di eseguire il mapping dell'intera tabella o dell'intero indice a un'unica partizione tramite il nome della funzione di partizione.If boundary value is left empty, the partition function maps the whole table or index into a single partition using the partition function name.

    In questa pagina sono disponibili le seguenti opzioni aggiuntive:The following additional options are available on this page:

    Imposta limitiSet Boundaries…
    Consente di aprire la finestra di dialogo Imposta valori limite per selezionare i valori limite e gli intervalli di date desiderati per le partizioni.Opens the Set Boundary Values dialog box to select the boundary values and date ranges you want for your partitions. Questa opzione è disponibile solo se è stata selezionata una colonna di partizionamento contenente uno dei tipi di dati seguenti: date, datetime, smalldatetime, datetime2o datetimeoffset.This option is only available when you have selected a partitioning column that contains one of the following data types: date, datetime, smalldatetime, datetime2, or datetimeoffset.

    Valuta spazio di archiviazioneEstimate storage
    Consente di valutare il numero di righe, lo spazio necessario e quello disponibile per l'archiviazione di ciascun filegroup specificato per le partizioni.Estimates rowcount, required space, and available space for storage for each filegroup specified for the partitions. Questi valori vengono visualizzati nella griglia come valori di sola lettura.These values are displayed in the grid as read-only values.

    Nella finestra di dialogo Imposta valori limite sono inoltre disponibili le seguenti opzioni aggiuntive:The Set Boundary Values dialog box allows for the following additional options:

    Data inizioStart date
    Consente di selezionare la data di inizio per i valori di intervallo delle partizioni.Selects the starting date for the range values of your partitions.

    Data fineEnd date
    Consente di selezionare la data di fine per i valori di intervallo delle partizioni.Selects the ending date for the range values of your partitions. Se è stata selezionata l'opzione Limite sinistro nella pagina Esegui mapping partizioni , questa data costituirà l'ultimo valore per ogni filegroup/partizione.If you selected Left boundary on the Map Partitions page, this date will be the last value for each filegroup/partition. Se è stata selezionata l'opzione Limite destro nella pagina Esegui mapping partizioni , questa data costituirà il primo valore nel penultimo filegroup.If you selected Right boundary on the Map Partitions page, this date will be the first value in the next-to-last filegroup.

    Intervallo di dateDate range
    Consente di selezionare la granularità della data o l'incremento dei valori di intervallo desiderato per ogni partizione.Selects the date granularity or range value increment you want for each partition.

    Dopo aver completato questa pagina, fare clic su Avanti.After completing this page, click Next.

  7. Nella pagina Seleziona un'opzione di output specificare il modo in cui si desidera completare la tabella partizionata.In the Select an Output Option page, specify how you want to complete your partitioned table. Selezionare Crea script per creare uno script SQL in base alle pagine precedenti della procedura guidata.Select Create Script to create a SQL script based the previous pages in the wizard. Selezionare Esegui immediatamente per creare la nuova tabella partizionata dopo aver completato tutte le pagine rimanenti della procedura guidata.Select Run immediately to create the new partitioned table after completing all remaining pages in the wizard. Selezionare Pianifica per creare la nuova tabella partizionata in un momento predeterminato nel futuro.Select Schedule to create the new partitioned table at a predetermined time in the future.

    Se si seleziona Crea script, in Opzioni di scriptingsono disponibili le opzioni seguenti:If you select Create script, the following options are available under Script options:

    Genera script nel fileScript to file
    Genera lo script come file con estensione sql.Generates the script as a .sql file. Immettere un nome di file e il percorso nella casella Nome file o fare clic su Sfoglia per aprire la finestra di dialogo Percorso file script .Enter a file name and location in the File name box or click Browse to open the Script File Location dialog box. In Salva con nomeselezionare Testo Unicode o Testo ANSI.From Save As, select Unicode text or ANSI text.

    Genera script negli AppuntiScript to Clipboard
    Salva lo script negli Appunti.Saves the script to the Clipboard.

    Genera script in nuova finestra QueryScript to New Query Window
    Genera lo script in una nuova finestra dell'editor di query.Generates the script to a new Query Editor window. Si tratta della selezione predefinita.This is the default selection.

    Se si seleziona Pianifica, fare clic su Cambia pianificazione.If you select Schedule, click Change schedule.

    1. Nella casella Nome della finestra di dialogo Nuova pianificazione processo immettere il nome della pianificazione del processo.In the New Job Schedule dialog box, in the Name box, enter the job schedule’s name.

    2. Nell'elenco Tipo pianificazione selezionare il tipo di pianificazione:On the Schedule type list, select the type of schedule:

      • Avvia automaticamente all'avvio di SQL Server AgentStart automatically when SQL Server Agent starts

      • Avvia quando la CPU risulta inattivaStart whenever the CPUs become idle

      • Periodica.Recurring. Selezionare questa opzione se la nuova tabella partizionata viene aggiornata regolarmente con nuove informazioni.Select this option if your new partitioned table updates with new information on a regular basis.

      • Singola occorrenza.One time. Si tratta della selezione predefinita.This is the default selection.

    3. Selezionare o deselezionare la casella di controllo Abilitata per abilitare o disabilitare la pianificazione.Select or clear the Enabled check box to enable or disable the schedule.

    4. Se si seleziona Periodica:If you select Recurring:

      1. In Frequenzanell'elenco Ricorrenza specificare la frequenza di occorrenza:Under Frequency, on the Occurs list, specify the frequency of occurrence:

        • Se si seleziona Giornaliera, nella casella Ogni immettere la frequenza in base alla quale si ripete la pianificazione del processo nei giorni.If you select Daily, in the Recurs every box, enter how often the job schedule repeats in days.

        • Se si seleziona Settimanale, nella casella Ogni immettere la frequenza in base alla quale si ripete la pianificazione del processo nelle settimane.If you select Weekly, in the Recurs every box, enter how often the job schedule repeats in weeks. Selezionare i giorni della settimana durante i quali viene eseguita la pianificazione del processo.Select the day or days of the week on which the job schedule is run.

        • Se si seleziona Mensile, selezionare Giorno oppure Ogni.If you select Monthly, select either Day or The.

          • Se si seleziona Giorno, immettere sia la data del mese in cui si desidera sia eseguita la pianificazione del processo sia la frequenza in base alla quale si ripete questa pianificazione nei mesi.If you select Day, enter both the date of the month you want the job schedule to run and how often the job schedule repeats in months. Ad esempio, se si desidera che la pianificazione del processo venga eseguita il giorno 15 del mese e a mesi alterni, selezionare Giorno e immettere "15" nella prima casella e "2" nella seconda casella.For example, if you want the job schedule to run on the 15th day of the month every other month, select Day and enter “15” in the first box and “2” in the second box. Si noti che il numero più grande consentito nella seconda casella è "99".Please note that the largest number allowed in the second box is “99”.

          • Se si sceglie Ogni, selezionare il giorno specifico della settimana del mese in cui si desidera sia eseguita la pianificazione del processo e la frequenza in base alla quale si ripete questa pianificazione nei mesi.If you select The, select the specific day of the week within the month that you want the job schedule to run and how often the job schedule repeats in months. Ad esempio, se si desidera che la pianificazione del processo sia eseguita l'ultimo giorno feriale del mese e a mesi alterni, selezionare Giorno, ultimo nel primo elenco e giorno feriale nel secondo elenco, quindi immettere "2" nell'ultima casella.For example, if you want the job schedule to run on the last weekday of the month every other month, select Day, select last from the first list and weekday from the second list, and then enter “2” in the last box. Nei primi due elenchi è anche possibile selezionare primo, secondo, terzoo quarto, nonché i giorni della settimana specifici, ad esempio domenica o mercoledì.You can also select first, second, third, or fourth, as well as specific weekdays (for example: Sunday or Wednesday) from the first two lists. Si noti che il numero più grande consentito nell'ultima casella è "99".Please note that the largest number allowed in the last box is “99”.

      2. In Frequenza giornalieraspecificare la frequenza in base alla quale si ripete la pianificazione del processo in quel determinato giorno:Under Daily frequency, specify how often the job schedule repeats on the day the job schedule runs:

        • Se si seleziona Una sola volta alle, immettere l'ora specifica del giorno in cui deve essere eseguita la pianificazione del processo nella casella Una sola volta alle .If you select Occurs once at, enter the specific time of day when the job schedule should run in the Occurs once at box. Immettere l'ora, il minuto e il secondo del giorno, nonché AM o PM.Enter the hour, minute, and second of the day, as well as AM or PM.

        • Se si seleziona Ognispecificare la frequenza in base alla quale la pianificazione del processo viene eseguita durante il giorno scelto in Frequenza.If you select Occurs every, specify how often the job schedule runs during the day chosen under Frequency. Ad esempio, se si vuole che la pianificazione del processo sia ripetuta ogni 2 ore durante il giorno scelto per questa pianificazione, selezionare Ogni, immettere "2" nella prima casella, quindi selezionare ora/e nell'elenco.For example, if you want the job schedule to repeat every 2 hours during the day that the job schedule is run, select Occurs every, enter “2” in the first box, and then select hour(s) from the list. In questo elenco è anche possibile selezionare minuto/i e secondo/i.From this list you can also select minute(s) and second(s). Si noti che il numero più grande consentito nella prima casella è "100".Please note that the largest number allowed in the first box is “100”.

          Nella casella A partire dalle immettere l'ora in cui dovrebbe iniziare l'esecuzione della pianificazione del processo.In the Starting at box, enter the time that the job schedule should start running. Nella casella Fino alle immettere l'ora in cui dovrebbe terminare la ripetizione della pianificazione del processo.In the Ending at box, enter the time that the job schedule should stop repeating. Immettere l'ora, il minuto e il secondo del giorno, nonché AM o PM.Enter the hour, minute, and second of the day, as well as AM or PM.

      3. In Duratadi Data inizioimmettere la data in cui si desidera sia avviata l'esecuzione della pianificazione del processo.Under Duration, in Start date, enter the date that you want the job schedule to start running. Selezionare Data fine o Nessuna data di fine per indicare quando dovrebbe terminare l'esecuzione della pianificazione del processo.Select End date or No end date to indicate when the job schedule should stop running. Se si seleziona Data fineimmettere la data in cui si desidera venga terminata l'esecuzione della pianificazione del processo.If you select End date, enter the date that you want to job schedule to stop running.

    5. Se si seleziona Singola occorrenza, in Singola occorrenza, nella casella Data immettere la data in cui verrà eseguita la pianificazione del processo.If you select One Time, under One-time occurrence, in the Date box, enter the date that the job schedule will be run. Nella casella Ora immettere l'ora in cui verrà eseguita la pianificazione del processo.In the Time box, enter the time that the job schedule will be run. Immettere l'ora, il minuto e il secondo del giorno, nonché AM o PM.Enter the hour, minute, and second of the day, as well as AM or PM.

    6. In Descrizionein Riepilogoverificare che tutte le impostazioni della pianificazione del processo siano corrette.Under Summary, in Description, verify that all job schedule settings are correct.

    7. Scegliere OK.Click OK.

      Dopo aver completato questa pagina, fare clic su Avanti.After completing this page, click Next.

  8. In Controlla selezioni della pagina Controlla riepilogoespandere tutte le opzioni disponibili per verificare che tutte le impostazioni della partizione siano corrette.On the Review Summary page, under Review your selections, expand all available options to verify that all partition settings are correct. Se tutte le impostazioni sono corrette, fare clic su Fine.If everything is as expected, click Finish.

  9. Nella pagina Stato Creazione guidata partizione monitorare le informazioni sullo stato delle azioni della Creazione guidata partizione.On the Create Partition Wizard Progress page, monitor status information about the actions of the Create Partition Wizard. A seconda delle opzioni selezionate nella procedura guidata, la pagina di stato può contenere una o più azioni.Depending on the options that you selected in the wizard, the progress page might contain one or more actions. Nella casella superiore viene visualizzato lo stato complessivo della procedura guidata e viene indicato il numero di messaggi di stato, di errore e di avviso restituiti durante l'esecuzione della procedura guidata.The top box displays the overall status of the wizard and the number of status, error, and warning messages that the wizard has received.

    Le opzioni seguenti sono disponibili nella pagina Stato Creazione guidata partizione :The following options are available on the Create Partition Wizard Progress page:

    DettagliDetails
    Consente di visualizzare i messaggi di azione, di stato e di altro tipo restituiti dall'azione eseguita nella procedura guidata.Provides the action, status, and any messages that are returned from action taken by the wizard.

    AzioneAction
    Specifica il tipo e il nome di ciascuna azione.Specifies the type and name of each action.

    StatoStatus
    Indica se l'intera azione della procedura guidata ha restituito il valore Esito positivo o Esito negativo.Indicates whether the wizard action as a whole returned the value of Success or Failure.

    MessageMessage
    Fornisce tutti i messaggi di errore o di avviso restituiti dal processo.Provides any error or warning messages that are returned from the process.

    ReportReport
    Crea un report contenente i risultati della Creazione guidata partizione.Creates a report that contains the results of the Create Partition Wizard. Le opzioni sono Visualizza report, Salva report su file, Copia report negli Appuntie Invia report per posta elettronica.The options are View Report, Save Report to File, Copy Report to Clipboard, and Send Report as Email.

    Visualizza reportView Report
    Apre la finestra di dialogo Visualizza report in cui è contenuto un report di testo dello stato della Creazione guidata partizione.Opens the View Report dialog box, which contains a text report of the progress of the Create Partition Wizard.

    Salva report su fileSave Report to File
    Apre la finestra di dialogo Salva report con nome .Opens the Save Report As dialog box.

    Copia report negli AppuntiCopy Report to Clipboard
    Copia i risultati del report dello stato della procedura guidata negli Appunti.Copies the results of the wizard’s progress report to the Clipboard.

    Invia report per posta elettronicaSend Report as Email
    Copia i risultati del report dello stato della procedura guidata in un messaggio di posta elettronica.Copies the results of the wizard’s progress report into an email message.

    Al termine, fare clic su Chiudi.When complete, click Close.

    Creazione guidata partizione crea la funzione e lo schema di partizione, quindi applica il partizionamento alla tabella specificata.The Create Partition Wizard creates the partition function and scheme and then applies the partitioning to the specified table. Per verificare il partizionamento della tabella, in Esplora oggetti fare clic con il pulsante destro del mouse sulla tabella e scegliere Proprietà.To verify the table partitioning, in Object Explorer, right-click the table and select Properties. Fare clic sulla pagina Archiviazione .Click the Storage page. Nella pagina vengono visualizzate informazioni come il nome della funzione e dello schema di partizione e il numero di partizioni.The page displays information such as the name of the partition function and scheme and the number of partitions.

Utilizzo di Transact-SQL Using Transact-SQL

Per creare una tabella partizionataTo create a partitioned table

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute. Nell'esempio vengono creati i nuovi filegroup, una funzione di partizione e un schema di partizione.The example creates new filegroups, a partition function, and a partition scheme. Una nuova tabella viene creata con lo schema di partizione specificato come percorso di archiviazione.A new table is created with the partition scheme specified as the storage location.

    USE AdventureWorks2012;  
    GO  
    -- Adds four new filegroups to the AdventureWorks2012 database  
    ALTER DATABASE AdventureWorks2012  
    ADD FILEGROUP test1fg;  
    GO  
    ALTER DATABASE AdventureWorks2012  
    ADD FILEGROUP test2fg;  
    GO  
    ALTER DATABASE AdventureWorks2012  
    ADD FILEGROUP test3fg;  
    GO  
    ALTER DATABASE AdventureWorks2012  
    ADD FILEGROUP test4fg;   
    
    -- Adds one file for each filegroup.  
    ALTER DATABASE AdventureWorks2012   
    ADD FILE   
    (  
        NAME = test1dat1,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\t1dat1.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP test1fg;  
    ALTER DATABASE AdventureWorks2012   
    ADD FILE   
    (  
        NAME = test2dat2,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\t2dat2.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP test2fg;  
    GO  
    ALTER DATABASE AdventureWorks2012   
    ADD FILE   
    (  
        NAME = test3dat3,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\t3dat3.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP test3fg;  
    GO  
    ALTER DATABASE AdventureWorks2012   
    ADD FILE   
    (  
        NAME = test4dat4,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\t4dat4.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP test4fg;  
    GO  
    -- Creates a partition function called myRangePF1 that will partition a table into four partitions  
    CREATE PARTITION FUNCTION myRangePF1 (int)  
        AS RANGE LEFT FOR VALUES (1, 100, 1000) ;  
    GO  
    -- Creates a partition scheme called myRangePS1 that applies myRangePF1 to the four filegroups created above  
    CREATE PARTITION SCHEME myRangePS1  
        AS PARTITION myRangePF1  
        TO (test1fg, test2fg, test3fg, test4fg) ;  
    GO  
    -- Creates a partitioned table called PartitionTable that uses myRangePS1 to partition col1  
    CREATE TABLE PartitionTable (col1 int PRIMARY KEY, col2 char(10))  
        ON myRangePS1 (col1) ;  
    GO  
    

Per determinare se una tabella è partizionataTo determine if a table is partitioned

  1. Tramite la query seguente vengono restituite una o più righe se la tabella PartitionTable è partizionata.The following query returns one or more rows if the table PartitionTable is partitioned. Se la tabella non è partizionata, non viene restituita alcuna query.If the table is not partitioned, no rows are returned.

    SELECT *   
    FROM sys.tables AS t   
    JOIN sys.indexes AS i   
        ON t.[object_id] = i.[object_id]   
        AND i.[type] IN (0,1)   
    JOIN sys.partition_schemes ps   
        ON i.data_space_id = ps.data_space_id   
    WHERE t.name = 'PartitionTable';   
    GO  
    

Per determinare i valori limite per una tabella partizionataTo determine the boundary values for a partitioned table

  1. Tramite la query seguente vengono restituiti i valori limite per ogni partizione nella tabella PartitionTable .The following query returns the boundary values for each partition in the PartitionTable table.

    SELECT t.name AS TableName, i.name AS IndexName, p.partition_number, p.partition_id, i.data_space_id, f.function_id, f.type_desc, r.boundary_id, r.value AS BoundaryValue   
    FROM sys.tables AS t  
    JOIN sys.indexes AS i  
        ON t.object_id = i.object_id  
    JOIN sys.partitions AS p  
        ON i.object_id = p.object_id AND i.index_id = p.index_id   
    JOIN  sys.partition_schemes AS s   
        ON i.data_space_id = s.data_space_id  
    JOIN sys.partition_functions AS f   
        ON s.function_id = f.function_id  
    LEFT JOIN sys.partition_range_values AS r   
        ON f.function_id = r.function_id and r.boundary_id = p.partition_number  
    WHERE t.name = 'PartitionTable' AND i.type <= 1  
    ORDER BY p.partition_number;  
    

Per determinare la colonna di partizione per una tabella partizionataTo determine the partition column for a partitioned table

  1. Tramite la query seguente viene restituito il nome della colonna di partizionamento per la tabella.The following query returns the name of the partitioning column for table. PartitionTable.PartitionTable.

    SELECT   
        t.[object_id] AS ObjectID   
        , t.name AS TableName   
        , ic.column_id AS PartitioningColumnID   
        , c.name AS PartitioningColumnName   
    FROM sys.tables AS t   
    JOIN sys.indexes AS i   
        ON t.[object_id] = i.[object_id]   
        AND i.[type] <= 1 -- clustered index or a heap   
    JOIN sys.partition_schemes AS ps   
        ON ps.data_space_id = i.data_space_id   
    JOIN sys.index_columns AS ic   
        ON ic.[object_id] = i.[object_id]   
        AND ic.index_id = i.index_id   
        AND ic.partition_ordinal >= 1 -- because 0 = non-partitioning column   
    JOIN sys.columns AS c   
        ON t.[object_id] = c.[object_id]   
        AND ic.column_id = c.column_id   
    WHERE t.name = 'PartitionTable' ;   
    GO  
    

    Per altre informazioni, vedere:For more information, see: