对SharePoint 2007数据库中一些数据表的使用
转:http://blog.csdn.net/ma_jiang/article/details/6553392
在工作中接触了一些SharePoint的数据库中的一些表。在此做个总结。
一位高手告诉我了与Content Database相关的三个表:
AllUserData
AllDocs AllDocStreams
我就是从这三个表开始研究的。而且在研究中发现 AllLists 表也很重要,但遗憾的是没在msdn上找到对这个表的说明。
表中每列的含义我就不多说了,在msdn上都有。 我在此举几个例子来介绍一下这些表的使用。
1. 得到用户上传的文档的数目:
select count(*) as DocNumber from dbo.AllDocs
where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] in
(select [tp_ID] from dbo.AllLists where [tp_ServerTemplate] = 101 and [tp_ItemCount] > 0)
注:AllLists列表中记录着所有列表的信息,此处所说的列表指的是所有SPList对象。
2. 得到每个文档的平均大小:
--declare variables
declare @file_size int
set @file_size = 0
set @file_size = (select sum(Cast([Size] as bigint)) as DocSize from dbo.AllDocs
where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] in
(select [tp_ID] from dbo.AllLists where [tp_ServerTemplate] = 101 and [tp_ItemCount] > 0))
set @file_size = @file_size / 1024
print(@file_size);
注:[Size]字段是以Byte为单位的,所以要将其变为bigint类型。
3. 得到文档库中文档的格式及相应的数目:
select [ExtensionForFile], count(*) as FileCount from dbo.AllDocs
where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] in
(select [tp_ID] from dbo.AllLists where [tp_ServerTemplate] = 101 and [tp_ItemCount] > 0)
group by [ExtensionForFile] order by [FileCount] desc
1. 得到文档库的大小
dbo.Webs 记录了每个 SPWeb对象的 FullUrl和 Guid.
dbo.Sites 记录了每个 SPSite对象的 GUID,可以与 dbo.Webs、 dbo.AllDocs对象联合起来使用。
select [ListId] as [LibId], [tp_Title] as [LibTitle],dbo.Webs.[FullUrl], (sum(Cast([Size] as bigint)) / (1024)) as [LibSize (KB)]
from dbo.AllDocs, dbo.AllLists, dbo.Webs
where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] = [tp_ID] and
[tp_ServerTemplate] in (101,109,111,113,114,115,116,119) and [tp_ItemCount] > 0 and dbo.AllDocs.[SiteId]=
(select dbo.Sites.[Id] from dbo.Sites, dbo.Webs
where dbo.Webs.[SiteId] = dbo.Sites.Id and dbo.Webs.[FullUrl] = '')
and dbo.AllDocs.[WebId] = dbo.Webs.[Id]
Group By [ListId], dbo.Webs.[FullUrl], [tp_Title] order by [LibSize (KB)] desc
注:
dbo.Webs.[FullUrl]
列存储了每个
SPWeb
对象的
url
地址
(
例如:
Teams/Test0223PM0400)
,当此
SPWeb
对象是根站点的
web
对象时,此处值为空字符串。
2. 得到在某段时间内更新的文档数
--declare variables
declare @start_time datetime, @end_time datetime
--set UTC DateTime
set @start_time = cast('2010-12-27 08:08:33' as datetime)
set @end_time = cast('2010-12-28 02:35:21' as datetime)
select count(*) from dbo.AllDocs
where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] in
(select [tp_ID] from dbo.AllLists where [tp_ServerTemplate] = 101 and [tp_ItemCount] > 0)
and ([MetaInfoTimeLastModified] between @start_time and @end_time)
注:dbo.AllDocs
表中的
[TimeCreated], [TimeLastModified], [NextToLastTimeModified], [MetaInfoTimeLastModified],
以及
[TimeLastWritten]
列都使用
UTC
时间。
3.
得到最常使用的文档格式及数目
select [ExtensionForFile], count(*) as 'AttachmentCount' from AllDocs
where DoclibRowId is null and [DeleteTransactionId] = 0x and [Type] = 0
and [HasStream] = 1 and ListId in
(select tp_ID from dbo.AllLists where [tp_ServerTemplate] in (100,107,108,150,1100) and [tp_ItemCount] > 0)
group by [ExtensionForFile] order by [AttachmentCount] desc
注: [DeleteTransactionId] 指示该listitem是否已被删除,未删除则值应为0x。
[HasStream] 指示此item是否含有文件流,1表示含有。
[Type] 指示此文档的‘Document Store Type’, 0表示文件,1表示文件夹。
4. 从站点集的Url地址得到所在数据库的名字
此处需要用到SharePoint的配置数据库(默认名称为:SharePoint_Config
)
select dbo.objects.[name] from dbo.objects, dbo.sitemap
where dbo.objects.[ID] = dbo.sitemap.[databaseID] and dbo.sitemap.[path] = '/AK/StrategicIndustries'
注:dbo.objects.[name] –> 数据库的名称存在于此列。
dbo.sitemap.[path] –> 记录着站点集的路径。
对SharePoint 2007数据库中一些数据表的使用的更多相关文章
- 孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成
孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天经过反复折腾,最终基本上算 ...
- 孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数
孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目 ...
- 用java语言将数据库中的数据表转换为xml文件的通用程序(细化)
转自:https://www.cnblogs.com/wudage/p/7650685.html 总是在网络上copy别人的源代码,今天我也贴出自己今天写的源码,相信这个程序会对大家在平时的工作中需要 ...
- 用C# ASP.net将数据库中的数据表导出到Excel中
需要用到组件GridView和一个button即可. 给GridView添加一个数据源, 选择你想要的数据库中的表的字段,添加成功后GridView中就显示数据. 再添加一个button,双击控件添加 ...
- MySQL查询数据库中所有数据表的数据条数
select table_name,table_rows from information_schema.tables where TABLE_SCHEMA = '数据库名称' order by ta ...
- 如何在Sqlserver2000查询分析器中,,在一个库中调用另一个数据库中的数据表
同一服務器 use aa select * from pubs.dbo.jobs 不同服務器 select * from openrowset('sqloledb','IP地址';'sa';'密碼', ...
- ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )
//TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...
- ThinkPHP 数据库操作之数据表模型和基础模型 ( Model )
一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function te ...
- 孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数
孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 不同类型 ...
随机推荐
- C++ 中的类型转换机制详解
Tips: This article based on Scott Meyers's <<Effective C++>> article 27: Minimize Castin ...
- Sicily 1510欢迎提出优化方案
这道题我觉得是除1000(A-B)外最简单的题了……不过还是提出一个小问题:在本机用gcc编译的时候我没包括string.h头文件,通过编译,为什么在sicily上却编译失败? 1510. Mispe ...
- Nginx 域名转发
例如访问www.b.cn直接跳到www.a.cn上去,又不想多域名捆绑一个目录. server { listen 80; server_name www.b.cn; rewrite ^/(.*)$ h ...
- QML按键事件处理
QML提供了对应的按键处理方法,我们接下来实现一个通过键盘上的方向键来移动文本,代码如下: import QtQuick 2.4 import QtQuick.Controls 1.3 import ...
- RX学习笔记:正则表达式
正则表达式 2016-07-03 正则表达式是以字符串模板的形式匹配查找字符的方式. 正则表达式是字符串模板,所以其本身是一个字符串,首尾以反斜杆 / 开始和结束. 在两反斜杆中间的字符串表示要查找的 ...
- 【原】Object 异常静态
//所有的类都继承Object类: Object a=; Object b="ddfasfda"; //正常情况下,都会省略掉:Object:但实际上是存在的: class tes ...
- WPF异步调用WCF服务
wpf调用wcf时,第一次访问总耗时到达几秒,影响界面的用户体验,因此在wpf加载界面和加载数据时采用异步加载,即异步访问wcf服务, 由于是否采用异步加载和服务端无关,仅仅由客户端自己根据需要来选择 ...
- Python设计模式——设计原则
1.单一职责原则:每个类都只有一个职责,修改一个类的理由只有一个 2.开放-封闭远程(OCP):开放是指可拓展性好,封闭是指一旦一个类写好了,就尽量不要修改里面的代码,通过拓展(继承,重写等)来使旧的 ...
- Visual Studio 2010 旗舰版安装图解
微软发布了最新的 Visual Studio 2010 软件开发编程平台及 .Net Framework 4 框架.这次 VisualStudio 2010 包括 Professional 专业版.P ...
- delphi xe5 android iny绿色版+最新SDK/NDK安装方法
转自: http://bbs.2ccc.com/topic.asp?topicid=438595 首先感谢iny的绿色版,因为我的精简Win7 32位安装原版镜像4.63G过程正常,但是编译出错,后来 ...