最新评论
SOS
sharepoint2007 内容数据库中怎么恢复文件啊?
就是不希望去界面上一个一个找出来保存,
希望用语句一次性批量把文件生成到硬盘上。
怎么实现啊?
SOS
在网上找了很久资料,搞不定,请大哥们帮忙啊!!
Re:广州第一次.NET会议的资料 暮之城 2011-10-13 22:35
非常好啊!
8.find命令
find pathname -options [-print -exec -ok]
选项:
-name 按照文件名查找文件
-perm 按照文件权限来查找文件
-prune 可以使find命令不在当前指定的目录中查找,如果使用了depth则此选项无效
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件
-mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改的时间距现在n天以内
+n表示文件更改的时间距现在n天以前
-nogroup 查找无有效所属组的文件
-nouser 查找无有效属主的文件 即该文件的属主在/etc/passwd中不存在
-newer file1!file2 查找更改时间比文件file1新但是比file2旧的文件
-type 查找某一类型的文件 -[b块设备文件 d目录 c字符设备文件 p管道文件 l符号链接文件 f普通文件]
-size n[c] 查找文件长度为n块的文件 带有c时表示文件长度以字节计
-depth 在查找文件时 首先查找当前目录中的文件 然后再在子目录中查找
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到
-mount 查找文件时不能跨越文件系统mount点
-follow 如果find命令遇到符号链接文件 就跟踪至所指向的文件
-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁盘设备中
eg:
find ~ -name "*.txt" -print 在根目录查找文件名符合*.txt的文件
find . -perm 755 -print
find / -mtime -5 -print 在系统根目录下查找更改时间在5日以内的文件
find / -mtime +3 -print 在系统根目录下查找更改时间在3日以前的文件
find . -newer age.txt ! -newer belt.txt -exec ls -l {} \ 查找比文件age新但是比belt旧的文件
find /etc -type d -print 查找/etc目录下所有的目录
find . -size +1000000c -print 查找当前目录文件长度大于1m字节的文件
find / -name "CON.FILE" -depth -print 从文件系统的根目录开始查找,查找一个名为CON.FILE的文件,然后再进入子目录进行查找
find . -name "*.txt" -mount -print 从当前目录开始查找位于本文件系统中的文件名为*.txt的文件
find etc home apps -depth -print | cpio -ivcdC65536 -o \
etc home apps表示相对路径 C65536表示 块大小使用(65536/1024)=64k
find . -type f -exec ls -l {} \ 查找当前目录中文件,并用命令ls -l展示出来
find logs -type f -mtime +5 -exec rm {} \ 查找目录/logs中更改时间在5日以前的文件并删除它们
find / -type f -print | xargs file 查找系统中每一个文件并用xargs命名
find . -name "core" -print | xargs echo "" >/temp/core.log 在整个系统中查找内存信息转储文件,然后把结果保存到/temp/core.log文件中
find /apps/audit -perm -7 -print | xargs chmod o-w 在/ a p p s / a u d i t目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限
Re:如何在列表模板中增加一个计算列 BI 2011-03-24 11:24
命令哈
1.设定变量
一般变量设定:
name="VBird's name"
变量累加设定
name="$name"isme echo $name 会显示VBird's nameisme
PATH="$PATH":/home/test echo $PATH 将多了后面一句话
2.export name 设定$name可以用于下一个目录或子程序
unset name 取消name 的变量设定
3.eval的使用
[test @test test]# days=365
[test @test test]# year=days
[test @test test]# echo \$$year
$days <==第一个 $ 被 \ 改变成为一般字符,而 \$ 后面接的 $year 就成为 days 啦!
[test @test test]# eval echo \$$year
365
加上 eval 之后, \$$year 变成的 $days 的『变量内容』会显现出来喔!
4.别名
[test @tset test]#alias lm='ls -al|more'
[test @tset test]#alias 将显示所有的别名
5.查找所属的用户组
groups
或
id
查找其它用户所属用户组
groups matty
6.创建文件时最大权限为666
创建目录时最大权限为777
umask值是改变创建文件默认权限的方式,采用减法模式
常用的umask值:
umask值 目录 文件
022 755 644
027 750 640
006 771 660
007 770 660
查询umask值:
umask
7.连接
ln [-s] source_path target_path
Re:时间显示器WebPart BI 2011-03-24 11:08
9.后台执行命名
方法一:设置crontab文件,并用它来提交作业
方法二:使用at命令来提交作业
方法三:在后台提交作业(使用&在后台运行一个占用时间不长的进程)
方法四:使用nohup命令提交作业(即使用户退出时也不受影响)
法一:cron是系统主要的调度进程,可在无需人工干预的情况下进行作业,有一个叫做crontab的命令允许用户提交、编辑或删除相应作业
每个用户都可以有一个crontab文件来保存调度信息,可以使用它来运行任意一个shell脚本或命令
系统管理员通过cron.deny和cron.allow来禁止或允许用户拥有自己的crontab文件
crontab格式:
分<>时<>日<>月<>星期<>要运行的命令
eg:
30 21 * * * /apps/bin/cleanup.sh 每晚21:30运行/apps/bin目录下的cleanup.sh脚本
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \; 每周六、周日的1:10运行一个find命令
crontab命令的一般格式为:
crontab [-u user] -e -l -r 其中 -u代表用户名 -e编辑crontab文件 -l列出crontab文件中的内容 -r 删除crontab文件
法二:at命令
跟用户可以通过/etc目录下的at.allow和at.deny文件来控制哪些用户可以使用at命令
at命令的基本形式
at [-f script] [-m -l -r] [time] [date]
其中,-f script是所要提交的脚本或命令
-l 列出当前所有等待运行的作业
-r 清除作业
-m 作业完成后给用户发邮件
at命令提交方式
一般提交若干行系统命令时 使用at命令提示符方式
提交shell脚本时使用命令行方式
eg:at命令提示符方式
$at 21:30
at>find / -name "passwd" -print
at><EOT>
注:<EOT>就是<CTRL-D>
at可以接受的时间格式
at 6.45am may12
at 11.10pm
at now+1 hour
at now+10minutes
eg:命令行方式
at 3.00pm tomorrow -f /apps/bin/db_table.sh
eg:通过echo命令向at命令提交作业
echo find /etc -name "password" -print | at now +1 minute
法三:&命令
使用&命令把作业放在后台执行
向后台提交命令:
find /etc -name "srm.conf" -print >find.dt 2>&1 &
Re:列表属性查看器WebPart BI 2011-03-24 11:07
10.ps命令查看进程
当一个命令在后台执行的时候,可以用提交命名时所得到的进程号来监控它的运行
ps x|grep 28305 28305为进程号 如果系统不支持ps x命令可用下面代替
ps -ef|grep 28305
11.kill -signal [process_number]
12.nohup 挂起进程
在缺省的情况下该作业的所有的输出都被定向到一个名为nohup.out的文件中,除非指定输出文件
nohup command > myout.file 2>&1
nohup ps1 & 提交一个名为ps1的日志清除进程:
退出shell 再重新登陆 执行以下命令
ps x|grep ps1 可以看见ps1仍在执行
13.
ls [A-Z]??[!0-9]*.doc 列出所有以一个大写字母开头,第四个不为数字的后缀为.doc的文件
14.输入输出
echo "my documents one">mydoc 将my documents one写入mydoc文件
echo "my documents two">>mydoc 将my documents two追加到mydoc文件
read name surname
输入:john doe
echo $name and $surname
显示:john and doe
cat file1 file2 file3>bigfile 将file1 file2 file3三个文件合并到新的bigfile文件
Re:BI有感续 BI 2011-03-24 11:06
15管道
sed、awk、grep都很适合用管道
ls | grep tab.doc 当前目录下所有包含tab.doc的文件名
who | awk '{print $1"\t"$2}' 只显示用户以及所在的终端
df -k|awk '{print $1}'|grep -v "filesystem" 管道把awk的结果传递给grep命令,去掉最上面的题头filesystem
df -k|awk '{print $1}'|grep -v "filesystem" |sed s'/\/dev\///g' 只显示分区名
16.
tee 结果输出到屏幕的同时保存到另一个文件中
who | tee who.out 结果输出到屏幕的同时保存到另一个文件who.out中
17.命令执行顺序
mv /apps/bin /apps/dev/bin && rm -r /apps/bin 命令中/apps/bin目录将会被移到/apps/dev/bin目录下,如果它没有被成功执行,
就不会删除/apps/bin目录
awk '{print $1,$5}' acc.qtr >qtr.tmp || echo "sorry the payroll extraction didn't work" | mail dave
从一个审计文件中抽取第 1个和第5个域,并将其输出到一个临时文件中,如果这一操作未成功,我希望能够收到一个相应邮件:
18.基本元字符
基本元字符使用在grep和sed中
* 一个单字符后紧跟*,匹配0个或多个此单字符
. 匹配任意单字符
\ 用来屏蔽一个元字符的特殊含义
pattern\{n,m\} 匹配模式n到m次之间
Re:BI有感 BI 2011-03-24 11:03
19.grep用法
grep的选项:
-c 只输出匹配行的计数
-i 不区分大小写(只适用于单字符)
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在的或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
grep "sort it" *.doc 在当前目录下所有.doc文件中查找字符串"sort"
grep -c "48" data.f 只输出data.f中含有48的行数
grep -n "48" data.f 显示所有满足匹配模式的所有行及行数
grep -v "48" data.f 显示不包含48的各行
grep "48\>" data.f 显示精确匹配48的各行
grep -i "sep" data.f 对大小写不敏感
grep '[Ss]ept' data.f |grep 483 从data.f中抽取sept不管s的大小写,并此行包含483
grep -E '219|216' data.f -E这一扩展允许使用扩展模式匹配 匹配219或216的文件
组合命令:
ls -l | grep '^d' 查询当前目录下的所有目录的列表
Re:BI有感 BI 2011-03-24 11:03
@BI
20.awk命令
模式包括两个特殊的字段 BEGIN 设置计数和打印头 END用来在awk完成文本浏览 动作后打印输出文本总数和结尾状态标识
实际动作在{}内指定 动作大多数用来打印
awk -F: 'commands' input-file
awk '{print $0}' grade.txt | tee delete_me_and_die
awk 'BEGIN {print "Name belt\n-----------------------"}{print $1"\t"$4} END {"end of report"}' mywife.txt
规则:
确保整个awk命令用单引号括起来
确保命令内所有引号成对出现
确保用花括号括起动作语句,用圆括号括起条件语句
正则表达式用斜线括起来‘
为使域号匹配正则表达式,使用符号'~'后紧跟正则表达式,也可以用if语句 if后的条件要用()括起
awk '{if($4~/brown/) print $0}' grade.txt
awk '$0 ~ /brown/' grade.txt 这两个语句意思都是当第四个域含有brown时,打印它
awk '$3=="48" {print $0}' grade.txt 精确匹配
awk '$0 !~ /brown/' grade.txt 不包含
awk '$0~/(yellow|brown)/' grade.txt 包含yellow和brown的记录
&& AND 语句两边必须同时匹配为真
|| OR 语句两边同时或者其中一边匹配为真时
! 非 求逆
awk '{if ($1=="pbunny"&&$4=="yellow") print $0}' grade.txt
awk '{if ($4=="yellow"||$4~/brown/) print $0}' grade.txt
awk的内置变量
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览的文件记录数 小于等于NR
FS 设置输入域分隔符,等价于命令行-F选项
NF 浏览记录的域个数
NR 已读的记录数
OFS 输出域分隔符
RS 控制记录分割符
awk 'END {print NR}' grade.txt 输出文件的记录个数
awk '{print NF,NR,$0}END{print FILENAME}' grade.txt
NF的一个强大的功能是将变量$PWD的返回值传入awk并显示其目录
echo $PWD | awk -F/ '{print $NF}'
设置有意义的域变量名
awk '{name=$1;belts=$4;if(belts ~/yellow/)print name" is belt"belts}' grade.txt
Re:BI有感 BI 2011-03-24 11:02
23.uniq
uniq -udcf input-file output-file
-u 只显示不重复行(不连续重复)
-d 只显示有重复数据行
-c 打印每一重复行出现的次数
-f n为数字,前n个域被忽略
24.join
25.cut
26.paste
27.split
28.tr
tr -[cds] string1 string2 <input-file
-c 用字符串1中的字符集的补集替换此字符集 要求字符集为ASCII
-d 删除 字符串1中所有的输入字符
-s 删除所有重复出现的字符 只保留一个
默认为string1替换为string2
tr -s "[a-z]"<cops.txt>results.txt 去重后保存
tr -s ["\n"] <cops.txt 删除空行
echo "May Day,May Day" | tr "[a-z]" "[A-Z]" 小写转化为大写
Re:BI有感 BI 2011-03-24 11:01
sort
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
-c 测试文件是否已经分类
-m 合并两个分类文件
-u 删除所有复制行
-o 存储sort结果的输出文件名
其它选项:
-b 使用域进行分类时,忽略第一个空格
-n 指定分类是域上的数字分类
-t 域分隔符;用非空格或tab键分割域
-r 对分类次序或比较求逆
+n n为域号 使用此域号开始分类
eg:
sort -c video.txt 判断文件是否已经分类
sort -t: video.txt 以:为分隔符 按照第一个域进行sort
sort -t: -r video.txt 逆向读取文件
sort -t: +1 video.txt 对第二个域进行排序 按字符排序
sort -t +2n video.txt 对第三个域进行排序 按数字排序
sort -u video.txt 去除重复行
sort -t: -k4 video.txt 按照第四个域进行排序
sort -t: -r -k4 -k1 video.txt 先按照第四域进行降序排列,再按照第一个域进行第一个域进行排序
sort -t: -r -k4 video.txt |head -l 排序后只显示第一行
sort -t: -r -k4 video.txt |tail -l 排序后只显示最后一行
sort -k4 qq.txt|tail -1 | awk '{print "worst :",$4}' 将最终结果通过通道用awl定制输出
Re:BI有感 BI 2011-03-24 11:01
sed命令
无论命令是什么,sed并不与初始化文件打交道,它的操作仅仅是一个拷贝,然后所有的改动如果没有重定向到一个文件,将输出到屏幕
sed -n '2p' quote.txt 显示quote.txt文件中的第二行
sed -n '1,5p' quote.txt 显示quote.txt文件中的第二行
sed -n '/neave'p quote.txt 显示quote.txt文件中包含neave的行
sed -n '4,/The'p quote.txt 使用行号与模式混合使用的方式,即在第四行查询模式the
sed -n '1,$p' quote.txt 打印整个文件
要打印行号,使用等号,打印模式匹配的行号,使用格式/pattern/=
sed -e '/music/=' quote.txt 打印所有的行内容,并将匹配到的行号显示出来
sed -n '/music/=' quote.txt 只显示匹配的行号
sed -n -e '/music/p' -e '/music/=' quote.txt 将只显示匹配的行及对应的行号,
第一个命令打印模式匹配行,第二个使用=打印行号
sed '1,3d' quote.txt 删除1-3行之后显示出quote.txt内容
sed 's/night/NIGHT/' quote.txt 将quote.txt文件中的night替换为NIGHT
sed '1,2 w filedt' quote.txt 文件quote.txt输出到屏幕 1,2行输出到文件filedt
Re:BI有感 BI 2011-03-24 11:00
哈哈
Re:BI有感 kaka113 2011-01-03 17:32
什麽亂七八糟的東西!還BI呢
Re:在MOSS中实现自动上传图片 cvvn 2010-11-03 14:11
谁能来深圳或/远程作或能推荐一两位朋友来吗(开发周期5周 ,有偿)cvvn@live.cn
当前有一个门户网站的项目:是一个印刷企业的订单处理系统-网上客户沟通-客户下订单-企业订单接收-生产调度...工艺设计...生产..入库..客户提货单..企业发运..客户验收..客户付款-客户关系维护
以上客户界面在外网上操作,订单接收后处理流程在企业内网上,其中订单报价要经企业审批(审批流程走OA),生产调度排产的调度单,技术部门的工艺单都通过OA流程途径个生产工序
也就是说该项目要和当前企业的OA结合,并且希望能和HR结合,实现统一用户,单点登录(如能实现最好,不能的话 单独做一个可以跑工作流的网上订单处理系统也可)cvvn@live.cn
老大,我来顶你啦。周六去看了你的讲课,非常有精彩,很有激情。:)
哈哈,不写入门了?不过“列出我所发现的一些MOSS2010和MOSS2007有差异的地方”这个选题很棒啊!
支持!!
明儿见~
Re:office2010和sharepoint2010可以下载了? G yc {Son of VB.NET} 2010-04-24 00:14
没有Key 可以用~~~
期待中文版出来
更期待 VS2010 中文版
嗯,没错,已经下完了。 Office 2010看起来不错,就是Outlook遇到了插件不兼容的问题。
@38楼
这个,其实数据现在上T很容易。看看这篇blog,里面正好有微软自己使用的一些数据。光一个部门的(TFS部门)的开发数据就有15.5T了。TFS的所有数据都是存放在sql server的。
http://blog.joycode.com/soma/archive/2010/04/12/115934.joy
在VS2010项目开发周期里,我们做的第一件事情就是使用Team Foundation Server进行整个部门的bug跟踪及源代码管理。我们在之前的产品生命周期里使用TFS跟踪整个项目的产品特性,我们也在Team System组内使用TFS对源代码和bug进行管理。对于如此大型的项目,在全部门使用我们最新的工具,这对于我们自己可以说是迈出了一大步。现在整个项目已经临近结束,下面是一些针对TFS的一些统计数据:
3,668位活跃用户(以14天内的访问活动计算)
每月完成896次构建(Build)
828,978个工作项,包括缺陷,任务和其他我们追踪的工作
对25,170,852个源代码文件进行版本控制
高达15.5 TB数据
我现在在做YUM!的数据仓库项目 项目已经接近尾声 每天的数据量是3000w的单子 sql2008 里面 我们硬件做了32个磁盘组成的动态盘,表分区上搞了很多很多的partition,现在仍然觉得很吃力 3年的数据(从2007年开始)量达到了 2T的数据。。。。 etl 和 olap也是搞了一大堆的优化 但是性能仍然不容乐观。。。
[quote]Cheney Shue:
@ocean
TPC-E目前不作为正式测试环境,所以你去看那个排名都是x86的机器,ibm的aix都没有出来。TPC-H你比1,000GB以上的,数据仓库1TB以下没啥意思。如果你单纯比性能,拿Exadata一比,据对是无敌了。[/quote]
估计大部分公司的数据库都在100G以下,估计超过10G的都不多,能否说一下1TB数据库的应用场景,让大家开开眼界(存多媒体、文件等占用的空间应该排除掉)
oracle企业版单处理器是$47,500,sql server企业版单处理器$24,999。Windows Server 2008 R2 Enterprise 25 CALs价格$3,999。似乎好像是微软便宜那么一点点。
不过sql server的很多组件是个笑话,比如data mining,不知道它的浮点运算时几位的,算出来的东西总是不准,数据量越大差别越大。
olap也是,本来微软还和hyperion共同指定了xmla标准,可是从sql server 2005以后,微软自己把这个标准改的乱七八糟,之前的bo、cognos、hyperion的产品都不支持微软的olap了,所有现在sql server olap除了微软自己那个糟糕的reporting services外,无配套产品可用。
[quote]Cheney Shue:
@ocean
谁说Oracle的授权只有三年?你去Oralce Online Store看看它的定价吧,看看比SQL Server贵多少?
对了SQL Server还要算上Windows Server的价格,你自己算算,谁的价格贵。
说性能,SQL Server不是很多高级特性都没有,比如我做数据仓库的,海量数据的load,Oracle用direct insert、transportable tablesapce等方法,性能比SQL Server快的不是百分之几十,而是快上几倍。
数据仓库查询Oracle有mv,sql rewrite,big data block,column compress,bitmap index……,同样优化后的数据库,我可以保证oracle比sql server快10倍以上。
不要乱散布留言!![/quote]
真正的流言。支持楼主。
@32楼-34楼
我有点无语,你能从我的正文里面找出性能测试4个字吗?我的标题就是问题,而测试结果就是答案。我本来就没有和谁比较的意思,6秒或者16秒就是测试数据,我不需要和别的方案比较谁快谁慢。
至于价格就更可笑了,难道只有Oracle会打折,sql就不会打折了?别的软件就不打折了?你打8折和我打8折最后比较起来这不是一样吗,既然大家都打折,那比较的时候就按照市场价比较好了。或许你关系好,某样产品能打折多一点,不过比较这个就没意义了。
[quote]ocean:
这里列出了Oracle的Enterprise Options,你可以看看有多么恐怖
https://shop.oracle.com/pls/ostore/f?p=ostore:2:0::NO:RP,2:PROD_HIER_ID:4509953293451805720010
当你买了一个Oracle Enterprise的时候,如果你需要OLAP,需要Data Mining,那么都需要单独花钱,更多的东西你都需要单独购买。
而sql server 是all in one的,购买了enterprise,什么OLAP,什么Reporting service,什么integration services,等等,全部包含了。总共大约3W美金多点。[/quote]
哪家公司会按厂商指导价买软件啊。。。尤其是这种软件。。。
性能测试总要有个benchmark吧,你得出6秒和16秒来,和谁对比来分辨性能好坏呢?(莫非是人人心里的一杆秤?)
对的,按照我的建议,就是每个月新建一个文件夹,然后多文件夹存放,什么都方便。
我觉得ls的有些人都是吹毛求疵了,我想问一下你有你outlook里面放500w email会什么样?任何东西都需要维护的,难道你放1000w个小文件在一个文件夹,然后每分每秒都打开,并且你都需要?相信没人这样做吧,一般都会有archive的。
这里列出了Oracle的Enterprise Options,你可以看看有多么恐怖
https://shop.oracle.com/pls/ostore/f?p=ostore:2:0::NO:RP,2:PROD_HIER_ID:4509953293451805720010
当你买了一个Oracle Enterprise的时候,如果你需要OLAP,需要Data Mining,那么都需要单独花钱,更多的东西你都需要单独购买。
而sql server 是all in one的,购买了enterprise,什么OLAP,什么Reporting service,什么integration services,等等,全部包含了。总共大约3W美金多点。
https://shop.oracle.com/pls/ostore/f?p=ostore:product:576952978808304::NO:RP,3:P3_LPI,P3_PROD_HIER_ID:4509382199341805719938%2C4509958287721805720011
这里列出了Oracle 11g Enterprise 价格
Oracle Database Enterprise Edition
Oracle Database Enterprise Edition delivers industry leading performance while providing efficient, reliable, secure data management for mission-critical on-line transaction processing applications, query-intensive data warehouses, and content management and Web2.0 applications. Oracle Database Enterprise Edition is available on single and clustered servers with no socket limitation.
¥486,068.00 / Processor ,这是永久使用的价格。
sql server是30W,但是sql server是all in one,所有的东西都包含在里面,而Oracle你还需要另外花钱购买其他的组件,就如我正文的图一样。
Oracle许可证只能使用3年,貌似是一个谣言:
http://www.ctocio.com.cn/ttfiles/ccd/20081114/Noname.html
不过Oracle确实可以购买3年许可证,我刚刚看了一下,3年许可证是
¥243,034.00 / Processor
Metric:
Named User Plus Processor Term:
Perpetual 1 Year 2 Year 3 Year 4 Year 5 Year
Cost of first year support ¥106,934.85
价格问题我就不和你争了,我在正文里面放一张图,你可以自己看看,当然你也可以列出你所知道的Oracle的价格。
另外我们主张论据,你说的一堆东西,没有任何论据,你说比sql 快10倍,那你给一个权威的测试报告啊。我们基于TPC讨论,这个是大家公认权威的,你自己没有论据,我只能说那是你不懂sql server,不会用。
当然在TPC-H的1000G之上,Oracle确实比sql 快一点,但是没有你说的10倍这么夸张,讲话要有证据。而且你从性价比的排名来看,sql 又完全领先Oracle了,那你说是Oracle便宜,还是sql便宜?
你是否再看一下按照性价比来排名:
http://www.tpc.org/tpch/results/tpch_price_perf_results.asp
这个是不是所有Oracle排名就在sql之下了?在10000G的情况下,sql server反而是第一?
Oracle大大宣扬了它具有最好的价格/性能TPC-C基准,但是TPC-E基准更能代表客户的需求。之前,SQL Server在所有10个TPC-C价格/性能方面都保持了最好的结果。Oracle是通过利基许可证和支持了在现实世界中不实用的选项才达到这个结果的。
我说的颠覆了这个状况,就是说sql server不再比Oracle差,不是大家想想的,sql server比Oracle差很多,相反在很多场景下,sql server已经超过了Oracle。
当然Oracle本身也是一款优秀的数据库,这是毋庸置疑的。
@ocean
谁说Oracle的授权只有三年?你去Oralce Online Store看看它的定价吧,看看比SQL Server贵多少?
对了SQL Server还要算上Windows Server的价格,你自己算算,谁的价格贵。
说性能,SQL Server不是很多高级特性都没有,比如我做数据仓库的,海量数据的load,Oracle用direct insert、transportable tablesapce等方法,性能比SQL Server快的不是百分之几十,而是快上几倍。
数据仓库查询Oracle有mv,sql rewrite,big data block,column compress,bitmap index……,同样优化后的数据库,我可以保证oracle比sql server快10倍以上。
不要乱散布留言!!
呵呵,那x86的机器上为什么能装上64位版的sql server?
TPC-E是对TPC-C的补充,是一个更新的基准,这个可不是你说不作为正式测试环境就不是正式测试环境了。TPC-E是一个更复杂更完善的测试模型,也是对原有的TPC-C的改进。
TPC-H中,1000G以上确实Oracle领先一点,但是别忘了,sql排名也不弱,在top 10里面的,基本可以说是一个级别的数据库,何况数据库也不仅仅是做数据仓库来用的。另外你怎么不考虑一下Oracle的价钱?
@ocean
TPC-E目前不作为正式测试环境,所以你去看那个排名都是x86的机器,ibm的aix都没有出来。TPC-H你比1,000GB以上的,数据仓库1TB以下没啥意思。如果你单纯比性能,拿Exadata一比,据对是无敌了。
@19楼
当然,实际上以前没有使用过sql server的file stream,顺道测试一下,至于客户用什么方案,那么他们自己去衡量,我只是给出测试数据。其实从我自己的前提而言,最好 就是按照时间,根据不同的目录来存放,比如一个月一个目录,这样最省事,不过这都不是讨论的主题了。
我们再看看TPC-H排名,虽然前三名不是sql,但是sql占有的席位最多,而且整个top ten里面就没出现过Oracle,叫嚣Oracle的还是趁早醒醒吧。虽然后面数据量增大时,比如3000G,Oracle也很不错,但是sql也在top 10里面,至少在top10里面都属于一个级别的数据库。别忘了top 10之间的数值虽然有高有底,但是最多也就一两倍,但是价钱呢?
http://www.tpc.org/tpch/results/tpch_perf_results.asp
Oracle 11g许可证只可以用三年,而SQL Server的许可证是终身有效的。
你可以想想你用Oracle要花多少钱,这些钱都购买N多个sql server了。
@6楼
你给我的连接很好
http://www.tpc.org/tpcc/results/tpcc_perf_results.asp?resulttype=all&version=5%&currencyID=0
但是你给我的是TPC-C排名,而现在世界在发展,-C已经有点落后了,我们现在用更复杂的模型来衡量数据库,也就是TPC-E,那你是不是要看看TPC-E的排名呢?
http://www.tpc.org/tpce/results/tpce_perf_results.asp
这上面的排名就只有sql server了。
---------------------
事务处理性能委员会
事务处理性能委员会(TPC)是一个不为盈利的组织,它定义了事务处理和数据库性能基准,并发布了基于这些基准的目标性能数据。TPC基准具有非常严格的要求,包括可靠性和承受能力测试,而且必须接受一个独立的审查。
• 事务处理性能委员会(TPC)是一个非盈利的组织,它是为定义事务处理和数据库基准而建立的。
• TPC-E基准是一个新的可扩展基准,它旨在代表联机事务处理(OLTP)系统。不像它的前任——TPC-C——TPC-E使用一个非常复杂但很现实的数据库架构,并要求主流功能,例如参照完整性和RAID保护存储。
@ocean
个人看法考虑哪个方案,这个性能只是其一(这个性能可以稍作修改可以提升),另外还有需要考虑的是,数据是否保持一至性,备份... 之后这个文件的方式基本可以抛弃,如果你的资料不重要的,或需要老修改文件内容的,用文件的方式其实也不错,只是如果老需要修改文件内容的,这100W文件就.....
这个主要在于以前有人和我说一个目录中不要存放太多小文件,而且可能10W左右就会有不稳定的问题。而且我search了一下,发现网上也有这种说法,比如像这种:http://blog.cnw.com.cn/index.php/20937/viewspace-97654。
所以我就干脆测一下。
为什么用数据库,只要是顺便也跟着测试一下sql server 2008的File Stream新特性,这样一箭双雕,即测试了文件系统,也测试了数据库,何乐而不为?
至于是否采用这种方案,这个就很难讲了,方案吗,要均衡考虑,就算能撑得住,也未必最终都会放在一个目录里面,但是至少现在我知道,放在一个目录里面也不会让系统挂掉。
而在此之前,如果别人问你,我往一个目录放100W个小文件,这个目录会挂掉吗?估计你也很难通过主观臆断来判断出来吧。