2009-06-01 8 views

Répondre

6

Si vous activez un quota de site, une option sous les paramètres du site apparaît appelée Allocation d'espace de stockage. Lorsque vous définissez un quota dans l'Administration centrale, la page vous indique quel est le stockage utilisé pour que vous puissiez avoir une idée avant. Une fois que vous obtenez le rapport Allocation d'espace de stockage, vous pouvez voir la taille totale d'une bibliothèque.

Malheureusement, vous ne pouvez pas obtenir ce rapport sans activer un quota de site.

+0

p.s. Les quotas de sites sont une très bonne chose - il est incroyable de voir à quelle vitesse les utilisateurs sans entraves peuvent télécharger des documents. – Nat

1

Si vous enregistrez la liste en question comme modèle dans le système de fichiers, cela devrait vous donner une idée approximative de sa taille. Si vous devez le faire périodiquement, cette approche n'est pas aussi utile.

+0

Cela ne fonctionne que si la taille totale est inférieure à 50mb. – Emaborsa

1

Nous avons effectivement construit une application interne pour ce faire, mais il peut y avoir quelques produits commerciaux là-bas. Quoi qu'il en soit, ce que nous faisons est de parcourir chaque élément de la liste et de compter le nombre d'octets pour chaque champ. S'il y a un document, nous ajoutons à la taille de ce document. S'il y a des versions, nous multiplions le nombre d'octets pour chaque version. Ensuite, nous multiplions ce temps 1.5. Pas exact, mais il nous fournit un nombre qui est assez bon.

+0

Comment comptez-vous le nombre d'octets par champ? – Linda

+0

@Linda Lit la chaîne et la convertit en octet. – Emaborsa

3

Désolé pour le necro. Mais j'ai trouvé ce fil en cherchant une réponse à cette question moi-même. Je ne pouvais pas faire fonctionner la suggestion de Tim Dobrinski. Cette requête T-SQL ne traite pas de tout mais donne une très bonne idée. Placez-le dans Excel, puis ajoutez une colonne pour "Taille en Mo" et ajoutez une formule.

USE [WSS_Content] 
GO 

SELECT 
     [dbo].[Webs].[FullUrl] 
     ,[dbo].[Lists].[tp_Title] AS "ListName" 
     ,[dbo].[Docs].[DirName] 
     ,[dbo].[Docs].[LeafName] 
     ,[dbo].[Docs].[Size] 
     ,[dbo].[Docs].[MetaInfoSize] 
     ,[dbo].[Docs].[Version] 
     ,[dbo].[Docs].[TimeCreated] 
     ,[dbo].[Docs].[TimeLastModified] 
     ,[dbo].[Docs].[MetaInfoTimeLastModified] 
     ,[dbo].[Docs].[CheckoutUserId] 
     ,[dbo].[Docs].[CheckoutDate] 
     ,[dbo].[Docs].[ExtensionForFile] 

    FROM [WSS_Content].[dbo].[Docs] 
    INNER JOIN [WSS_Content].[dbo].[Webs] ON [dbo].[Webs].[Id] = [dbo].[Docs].[WebId] 
    INNER JOIN [WSS_Content].[dbo].[Lists] ON [dbo].[Lists].[tp_ID] = [dbo].[Docs].[ListId] 

    WHERE [dbo].[Docs].[Size] > 0  
    AND ([dbo].[Docs].[LeafName] NOT LIKE '%.stp') 
    AND ([dbo].[Docs].[LeafName] NOT LIKE '%.aspx') 
    AND ([dbo].[Docs].[LeafName] NOT LIKE '%.xfp') 
    AND ([dbo].[Docs].[LeafName] NOT LIKE '%.dwp') 
    AND ([dbo].[Docs].[LeafName] NOT LIKE '%template%') 
    AND ([dbo].[Docs].[LeafName] NOT LIKE '%.inf') 
    AND ([dbo].[Docs].[LeafName] NOT LIKE '%.css') 
+1

Je l'ai utilisé mais avec quelques réglages.Étant donné que nous avons environ un million d'éléments déplaçant cela vers Excel et le résumant, il était hors de question. Au lieu de cela, j'ai fait un GROUP BY [dbo]. [Listes]. [Tp_Title] et sélectionné [dbo]. [Listes]. [Tp_Title] AS "ListName", SUM ([dbo]. [Docs]. [Taille]/1024 + [dbo]. [Docs]. [MetaInfoSize]/1024). Cela m'a montré à quel point chaque liste était en Ko. J'ai ensuite exporté cela vers Excel et travaillé avec. – Peter

0

Paramètres du site -> Mesures de stockage

Vous pouvez voir à quel point chaque objet consomme, cliquez sur listes pour voir chaque liste individuelle

Vous ne devez pas définir un site quota

Sharepoint 2013

Site settings

0

Il est récupéré à partir de SharePoint 2013:

USE [WSS_Content_Intranet] 
GO 

SELECT 
    (ISNULL(DocSizes,0) + ISNULL(UserDataSize,0)) As TotalSize, 
    nLists.tp_ID, 
    nLists.tp_Title, 
    nLists.tp_ItemCount, 
    Webs.FullUrl 
FROM 
    Webs 
INNER JOIN 
    (
    SELECT 
     ALAux.ItemCount as tp_ItemCount, 
     Lists.tp_Title, 
     Lists.tp_ID, 
     Lists.tp_WebID, 
     ALAux.Modified as tp_Modified, 
     Lists.tp_ServerTemplate, 
     Docs.DirName, 
     Docs.LeafName, 
     Lists.tp_ImageUrl 
    FROM 
     Lists 
    CROSS APPLY 
     TVF_AllListsAux_NoLock_ListId(Lists.tp_SiteId, Lists.tp_ID) AS ALAux 
    INNER JOIN 
     Docs 
    ON 
     Lists.tp_RootFolder = Docs.Id AND 
     Lists.tp_WebId = Docs.WebId 
    WHERE 
     tp_BaseType <> 1 AND 
     Lists.tp_SiteId = YOUR_SITE_ID 
    ) As nLists 
    ON 
     Webs.Id = nLists.tp_WebId 
    LEFT OUTER JOIN 
     (
     SELECT 
      (SUM(CAST((ISNULL(Docs.Size,0)) AS BIGINT))) As DocSizes, 
      Docs.ListId, 
      Docs.SiteId 
     FROM 
      Docs 
     WHERE 
      Docs.Type = 0 AND SiteId = YOUR_SITE_ID 
     GROUP BY 
      Docs.ListId,Docs.SiteId 
     ) As DocsInList 
     ON 
      DocsInList.ListId = nLists.tp_ID 
     LEFT OUTER JOIN 
      (
      SELECT 
       (SUM(CAST((ISNULL(tp_Size,0)) AS BIGINT))) As UserDataSize, 
       tp_ListId 
      FROM 
       UserData 
      GROUP BY 
       UserData.tp_ListId 
      ) AS UserDataInList 
      ON 
       UserDataInList.tp_ListId = DocsInList.ListId 
ORDER BY TotalSize DESC 

Il retourne toutes les listes de toutes les toiles, résumant la taille des articles et des documents joints. Les bibliothèques de documents ne sont pas incluses, utilisez ceci:

SELECT 
    Lists.tp_Title, 
    Lists.tp_ID as Id, 
    SUM(Docs.Size/1024 + Docs.MetaInfoSize/1024)/1024 AS SizeMB, 
    COUNT(*) as NumberOfFiles 
FROM dbo.Docs 
    INNER JOIN Webs ON Webs.Id = Docs.WebId 
    INNER JOIN Lists ON Lists.tp_ID = Docs.ListId 
WHERE Docs.Size > 0 
GROUP BY Lists.tp_Title,Lists.tp_ID 
+0

Ack! Ne pas interroger directement la base de données de contenu! –

+0

L'utilisateur a écrit 'que cela ne me dérange pas d'exécuter une requête dans la base de données, si nécessaire. – Emaborsa

Questions connexes