Itpub's two diszuss

6 views
Skip to first unread message

Chan Qian

unread,
Jun 14, 2009, 9:15:44 AM6/14/09
to sin...@googlegroups.com
两道pl/sql编程题(感觉挺难)


(1)用户表(Users) 
表1    Users
字段        描述        数据类型        长度
UserID        注册用户ID        VARCHAR2        10
UserName        注册用户名        VARCHAR2        50
TrueName        真实姓名        VARCHAR2        50
Password        密码        VARCHAR2        50
Question        忘记密码的提示问题        VARCHAR2        50
Answer        问题答案        VARCHAR2        50
Email        Email        VARCHAR2        50
Sex        性别        VARCHAR2        10
RegDate        注册日期        Date          
LastLoginIP        登录IP        VARCHAR2        50
LoginTimes        登录次数        VARCHAR2        50
UserGrade        用户级别        VARCHAR2        50
UserLevel        用户等级(权限)        VARCHAR2        50
Homepage        用户的主页        VARCHAR2        50
QQ        用户的QQ        VARCHAR2        50
LastLoginTime        登陆时间        Date          
IDCard        ID卡        VARCHAR2        50
Address        地址        VARCHAR2        50
Phone        固定电话        VARCHAR2        50
PostalCode        邮政编码        VARCHAR2        50
UserType        用户类别(|0普通用户,1管理员)        VARCHAR2        50
DianpuState        是否已开店        VARCHAR2        50
VMoney        虚拟币        float        8
(2)销售表(tells)
                            表2    tells
字段        描述        数据类型        长度
id        销售编号        VARCHAR2        10
topic        标题        VARCHAR2        50
content        内容        VARCHAR2        800
UserName        卖家         VARCHAR2        50
ProductID        商品编号        VARCHAR2        50
DianPuID        店铺编号        VARCHAR2        50
UserIDr        卖家ID        VARCHAR2        50
dtime        购买日期        VARCHAR2        50        
islook        是否看过该商品        VARCHAR2        50

(3)商品类别表(PType)
                             表3    PType
字段        描述        数据类型        长度
Category_ID        类别ID        VARCHAR2        10
parentID        父类编号        VARCHAR2        10
Category_name        类别名称        VARCHAR2        50
(4)商品表(Products)
表4    Products
ProductID        商品编号        VARCHAR2        10
ProductName        商品名称        VARCHAR2        50
ProductType        商品类型        VARCHAR2        50
ProductPrice        单价        Float        8
CategoryID        商品所属类ID        VARCHAR2        10
ProductQuantity        库存量        VARCHAR2        50
ProductAddress        所在地        VARCHAR2        200
ProductPost        运费平邮        VARCHAR2        50
ProductFax        运费快递        Float        8
Productpicture        商品图片        VARCHAR2        50
ProductBegin        上架时间        VARCHAR2        50
ProductEnd        结束时间        VARCHAR2        50
ProductDetail        商品详细        VARCHAR2        800
ProductState        状态上架0/库存1        VARCHAR2        50
ProductStart        开始时间        VARCHAR2        50
ProductLeft        有效时间        VARCHAR2        50
ProductRepair        有无保修        VARCHAR2        50
ProductInvoice        有无发票        VARCHAR2        50
Productpayment        付款方式        VARCHAR2        50
UserID        所属用户ID        VARCHAR2        10
UserName        所属 用户名        VARCHAR2        50
(5)订单表(Orders)
                            表5    Orders
字段        描述        数据类型        长度
OrderId        定单编号        VARCHAR2        10
Store        商品名称        VARCHAR2        50
SalesId        卖家名称        VARCHAR2        50
BuyerId        买家名称        VARCHAR2        50
OrderTime        落订时间        Date         
ProductId        商品ID        VARCHAR2        10
Quantity        购买数量        VARCHAR2        50
PostType        邮费类型        VARCHAR2        50
PostPrice        邮费价格        Float        8
ProductTotal        商品总价        Float        8
Payment        应付总金额        Float        8
ConsigneeName        收货人姓名        VARCHAR2        50
Telephone        固定电话        VARCHAR2        50
MobilePhone        联系手机        VARCHAR2        50
ConsigneeAdress        委托人地址        VARCHAR2        50
ConsigneePost        委托人邮编        VARCHAR2        50
ProductPrice        商品单价        Float        8
State        交易状态(0等待付款 1交易完成)        VARCHAR2        4
(6)店铺分类表(DianPuType)
                         表6    DianPuType
字段        描述        数据类型        长度
DianPuTypeId        店铺分类编号        VARCHAR2        10
DianPuType        店铺分类名        VARCHAR2        50
DianPuId        店铺编号        VARCHAR2        10
Sort        排序号        VARCHAR2        50
(7)店铺表(DianPuDetail)
                        表7    DianPuDetail
字段        描述        数据类型        长度
DianPuId        店铺编号        VARCHAR2        10
DianPuName        店铺名称        VARCHAR2        50
DianPuUser        店主名称        VARCHAR2        50
DianPuLogo        Logo        VARCHAR2        50
DianPuClass        店铺类型        VARCHAR2        50
DianPuTime        开店时间        VARCHAR2        50
DianPuJieshao        店铺介绍        VARCHAR2        50
DianPuAdd        店铺地址        VARCHAR2        50
DianPuGongGao        店铺公告        VARCHAR2        50
DianPuItem        店铺条款        VARCHAR2        50
(8)客户信息表(BuyerInfo)
                        表8    BuyerInfo
字段        描述        数据类型        长度
Id        编号        VARCHAR2        10
Receiver        受领人        VARCHAR2        50
Telephone        固定电话        VARCHAR2        50
Mobile        移动电话        VARCHAR2        50
ReceiveAddress        受领人地址        VARCHAR2        50
Postalcode        邮编        VARCHAR2        50
UserID        用户ID        VARCHAR2        10
UserName        用户名        VARCHAR2        50
(9)附件表(append)
字段        描述        数据类型        长度
Id        编号        VARCHAR2        10
ProductID        商品ID        VARCHAR2        10
ProductName        商品名        VARCHAR2        50
Image        商品的图片附件        VARCHAR2        50


1)设计一个存储过程,打印出2009年1月到6月的某用户在本C2C电子商城购物网站购买的商品总额。存储过程的参数是用户ID(USERID),要求使用循环结构。打印过程使用DBMS_OUTPUT.PUT_LINE输出内容即可。格式如下:
用户姓名:***
月份               购买额
2009年1月    *****
2009年2月    *****
2009年3月    *****
2009年4月    *****
2009年5月    *****
2009年6月    *****
提示:
(1)购买额的计算方法是按照用户账号和每月的月份取出该月的订单,按照各个订单的商品总额,然后相加之后就是该月的销售总额。
(2)通过for循环来分别遍历六个月份。
(4)查询条件可以按照用户账号和月份来查询该用户每个月的订单
2)根据下面两个表设计一个函数完成下列功能:根据店铺在销售商品的总金额设定店铺的级别,函数有个参数为店铺ID,并将店铺的级别作为函数返回值。条件如下:
(1)总销售额大于1000000的用户,为5星级店铺,返回值为’A’;
(2)总销售额大于500000(包含),小于1000000 ,为4星级,返回值为’B’;
(3)总销售额大于250000(包括),小于500000 ,为3星级,返回值为’C’;
(4)总销售额大于100000(包括),小于250000 ,为2星级,返回值为’D’; 
(5)总销售额大于50000(包括),小于100000 ,为1星级,返回值为’E’; 
提示:
(1)根据店铺ID取出所有该店铺的订单信息;
(2)然后计算每条订单信息的购物金额即可,。
(3)然后再按照上述条件来进行判断。



and second:
不要过度迷信小型机
DataBaseMar 10th,2009
作者:Sky.Jian | 可以任意转载, 但转载时务必以超链接形式标明文章原始出处 和 作者信息 及 版权声明 
链接:http://www.jianzhaoyang.com/data ... tition-minicomputer |  del.icio.us | Twitter it 

在 IT 行业很多工程师(尤其是很多 DBA)的心目中,都把小型机视为解决性能问题的终极武器,认为小型机的处理能力要远大于 PC Server。在几年前,可能也确实是这样。但随着近几年 X86 架构芯片技术的飞速发展,PC Server 的处理能力已经越来越强悍,不断的给我们带来惊喜。

最近几年的小型机市场,基本上被 IBM 吃掉了大部分。虽然可能并不完全是因为其 Power 芯片处理能力与其他厂商的芯片相比有优势,但其处理能力方面的优异表现确实是一个很重要的因素。所以最近几年我们一直关注着 IBM 小型机与其他主机的处理能力比较,当然比较是基于 Oracle 数据库所做的一些测试。

测试基本模型如下:

在待测主机上安装好 Oracle 数据库,配置足够装载下所有数据的 SGA,将 Oracle 的 Redo 日志放在内存文件系统上。然后在我们技术能力范围内对 Oracle 进行相应的调优。 
使用我们真实的线上数据抽样(约10GB),Import 进入待测试主机上的 Oracle 数据库中。 
通过 PL/SQL 编写出模拟我们在线业务中最为典型的事务逻辑,然后使用C++编写多线程程序作为压力测试客户端。 
通过多台主机运行压力测试程序,平缓的给待测主机增加压力,待测主机的 CPU 利用率基本用完为止。 
测试数据的收集主要通过恒定时间段的 Oracle 数据库自身性能数据采样(statspack),然后分析 statspak 中的每秒事务数。以往经验显示,基本上当客户端压力线程到达一定数量之后,处理量就比较稳定甚至下降。然后我们从中取出每秒事务数的最大值,做为该机器的处理能力分值。

这个测试模型主要消耗的资源是主机的 CPU + RAM 的能力,而且当初也得到了 IBM 实验室的人认可。

通过这几年对几种主机处理能力跟踪测试情况来看,IBM Power 芯片的优势已经越来越不明显了,甚至其 Power 5+ 芯片的处理能力已经不如某些型号的 Intel x86 芯片的处理能力了,部分主机处理能力对比数据如下:

近四五年来的测试数据:
Sun v880(4C):                             160
Hp rx4640(4C):                           180
Dell 6650(2C):                             88(2核 CPU)
Dell 6650(4C):                            155
IBM P550(4c,Power 5):                294
IBM P590(8C,Power 5):                656
去年下半年至今年的测试数据:
IBM P590(16C,Power 5+):           1200
Intel (4c, Xeon(TM)):                   1210  (于去年下半年发布的6核 CPU)
Intel (2c, Xeon(R)):                      1107  (将于本月底发布的4核 Nehalem CPU,X5560)

从上面的数据中大家应该可以基本的了解到目前使用 Intel x86 架构的 Xeon CPU 的 PC Server 的处理能力了吧。当然,有些人可能会说,IBM Power 6 的处理能力与 Power 5 和 Power 5+ 相比有了一个较大的提升,事实如何我目前还不太清楚。但即使是其处理能力翻一倍,那也才与现在的 Nehalem 处理能力相当。

至于 PC Server 和 小型机在成本方面,这里就不多说了,我想大家都很清楚二者完全不在一个数量级上,甚至是相差两个数量级 

可能有些人又会说,小型机在 HA 方面比 PC Server 要强。确实,这一点我是承认的,小型机的可靠性在一定程度上要比 PC Server 是要好一些,大部分设备出现故障后都不用停机即可在线更换。但随着分布式架构的不断成熟,通过架构来解决整体可用性的成功案例已经越来越多。现在该是我们转换思路的时候了!


--------------------------------------------------------------------------------
Update on 20090318:增加最新的 IBM Power6芯片测试结果,以及每单个核的能力平均值列表

2005年:
Sun : v880,4cpu :160,平均单核40
Hp: rx464, 4cpu :180,平均单核45
dell 6650 2cpu : 88,平均单核44
dell 6650 4cpu : 155,平均单核38.75
IBM P550 4cpu : 294,平均单核73.5
IBM P590 8CPU : 656,平均单核82

2008年:
ibm p590 16 cpu: 1200,平均单核75

2009年:
intel nehalem样机, 2 cpu(每cpu 4core,X5560, 2.80GHz ) : 1107,平均单核138

IBM P550 power6 3503 MHz 4cpu: 421事务/秒,平均单核105(比08年测试 P590 提升40%)

Sincerely,
Chan Qian.

Erma Bombeck  - "Never have more children than you have car windows."
Reply all
Reply to author
Forward
0 new messages