Creazione Db distribuito

martedì 05 aprile 2011 - 20.51
Tag Elenco Tags  SQL Server 2008

cypher Profilo | Junior Member

ciao a tutti.
purtroppo lo spazio sull'hd logico sui cui sta sql server 2008 si sta esaurendo (anzi è gia esaurito). è possibile dire ad sql server di continuare il popolamento di una tabella andando a scrivere su un altro disco logico? soluzioni alternative per risolvere la mancanza di spazio (oltre a quella di partizionare diversamente il disco)?

lbenaglia Profilo | Guru

>ciao a tutti.
>purtroppo lo spazio sull'hd logico sui cui sta sql server 2008
>si sta esaurendo (anzi è gia esaurito). è possibile dire ad sql
>server di continuare il popolamento di una tabella andando a
>scrivere su un altro disco logico? soluzioni alternative per
>risolvere la mancanza di spazio (oltre a quella di partizionare
>diversamente il disco)?

Ciao,

Puoi creare un nuovo filegroup, aggiungere un nuovo file .ndf (o n file su volumi differenti) e spostare parte/tutte le tabelle (o meglio i loro indici clustered) nel nuovo filegroup.
Per maggiori info consulta i Books Online:
http://msdn.microsoft.com/en-us/library/bb522469.aspx

Qui trovi un esempio completo di codice:
http://www.mssqltips.com/tip.asp?tip=1112

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

cypher Profilo | Junior Member

non è possibile dire al dbms di "continuare" la tabella da un'altra parte? devo per forza spostarla tutta?(giusto per una conoscenza personale)

ok ho creato un nuovo filegroup e un nuovo file associato al filegroup.

ora cosa si intende per clustered index?

quando cerco di eseguire la query sotto mi viene il seguente errore
1> create index PK_user_followers on dbo.user_followers( 2> with (drop_existing=on) 3> on user_followers_FG 4> go Msg 1907, Level 16, State 1, Server CYPHER-PC, Line 1 Cannot recreate index 'PK_user_followers'. The new index definition does not mat ch the constraint being enforced by the existing index.

sto cercando di migrare una tabella con la seguente struttura
CREATE TABLE [dbo].[user_followers]( [id] [bigint] NOT NULL, [follower] [bigint] NOT NULL, CONSTRAINT [PK_user_followers] PRIMARY KEY CLUSTERED )

cypher Profilo | Junior Member

scusa mi sono accorto ora che usavo la query per il non clustered

ecco la query nuova con l'errore
1> create clustered index PK_user_followers on dbo.user_followers(id,follower) 2> on user_followers_FG 3> go Msg 1913, Level 16, State 1, Server CYPHER-PC, Line 1 The operation failed because an index or statistics with name 'PK_user_followers ' already exists on table 'dbo.user_followers'.

devo creare una nuova primary key? ma cosi non è che non mi sposta la tabella dato che nel link che mi hai dato dice
"The base table is stored with the
-- clustered index, so moving the clustered
-- index moves the base table"

p.s. ho provato ora a dare un altro nome all'index ma dice che prima devo droppare quello esistente ????
Msg 1902, Level 16, State 3, Server CYPHER-PC, Line 1 Cannot create more than one clustered index on table 'dbo.user_followers'. Drop the existing clustered index 'PK_user_followers' before creating another.

cypher Profilo | Junior Member

ho eliminato la pk dalla tabella e invocato la seguente query

1> create clustered index pk_user_followers on dbo.user_followers(id,follower) 2> on user_followers_FG 3> go

la cosa sembrerebbe funzionare dato che il file che ho creato in un altro disco e che ho aggiunto al filegroup si sta ingrandendo.

ho fatto giusto o no?

p.s. ha finito ma non noto che lo spazio disponibilie del disco di partenza sia aumentato. inoltre la tabella occupa "solo" 600mb per 22mln di righe. allora perche mi ha riempito l'hd di prima?da dove viene tutto il consumo di spazio su disco?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5