[image]100 有能帮忙写数据库装系统not image的嘛?急需

数据库期末考试复习题及答案_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据库期末考试复习题及答案
&&数据库,数据库期末复习资料,数据库期末试题
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩95页未读,
定制HR最喜欢的简历
你可能喜欢查看: 14487|回复: 18
oracle 服务器访问速度慢 硬盘读写100% 怎么办
论坛徽章:0
ORACLE服务器访问速度奇慢
看服务器监视
%DISK TIME
Avg.Disk Queue Length
Avg.Disk Bytes/Write
Avg.Disk Bytes/Read
都长期保持100%
看任务管理器 ORACLE内存使用1.53G&&thread为 163
不知道 什么问题 大家帮帮忙啊 搞8定就麻烦列!
论坛徽章:5
首先你先用 top 指令看看那些SQL 性能比较差,并优化之
再则看看磁盘是做的RAID几,参考你的系统应用特性是应该用 RAID5或RAID1( RAID 1写快些; RAID5 读快些)
论坛徽章:1
先说清楚,什么系统,磁盘做过raid吗?
认证徽章论坛徽章:71
还有是不是偶尔发生的,磁盘有没有物理损坏 ?
论坛徽章:44
都长期保持100%
-------磁盘有没有物理损坏,或者是阵列坏&&这种可能性大
论坛徽章:0
谢谢各位热心回复!
我这里硬盘是做raid1的
系统是win2003
现在数据库总共只有13G左右大小
硬件的物理损坏倒是没有
同时访问数据库大概100-200各客户端
现在数据库几乎瘫痪&&应用系统登陆 业务操作基本上做不了了
如果现在增加硬盘 将数据库分开不同硬盘放 是不是可以解决一些问题
论坛徽章:0
应当确定,读数据大,还是写数据大,找到读写io大进程,在数据库中相应的语句可以找到,很多原因,语句的执行效率太低,或者索引的设置问题
论坛徽章:26
如果确定硬件没有问题的话那就要优化应用,具体就是SQL语句
论坛徽章:5
最初由 hansen99k 发布
[B]谢谢各位热心回复!
我这里硬盘是做raid1的
系统是win2003
现在数据库总共只有13G左右大小
硬件的物理损坏倒是没有
同时访问数据库大概100-200各客户端
现在数据库几乎瘫痪&&应用系统登陆 业务操作基本上做不了了
如果现在增加硬盘 将数据库分开不同硬盘放 是不是可以解决一些问题 [/B]
看看热点数据的分布情况,搞清楚io高是读写数据块、写redo和controlfile造成的?另外有针对性的诊断应用发出的sql语句。
论坛徽章:3
这个主要应该就是应用的sql调整了
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号教你用100多行写一个数据库(附源码)
本文介绍的是以为中国的IT资深人士写的一个简单的数据库,没有我们使用的数据库那么强大,但是值得大家借鉴。可以用在特定环境中,更加灵活方便。数据库的名字叫WawaDB,是用python实现的。由此可见python是灰常强大啊!简介记录日志的需求一般是这样的:只追加,不修改,写入按时间顺序写入;大量写,少量读,查询一般查询一个时间段的数据;MongoDB的固定集合很好的满足了这个需求,但是MongoDB占内存比较大,有点儿火穿蚊子,小题大做的感觉。WawaDB的思路是每写入1000条日志,在一个索引文件里记录下当前的时间和日志文件的偏移量。然后按时间询日志时,先把索引加载到内存中,用二分法查出时间点的偏移量,再打开日志文件seek到指定位置,这样就能很快定位用户需要的数据并读取,而不需要遍历整个日志文件。性能Core 2 PGHZ,2G内存,32 bit win7写入测试:模拟1分钟写入10000条数据,共写入5个小时的数据, 插入300万条数据,每条数据54个字符,用时2分51秒读取测试:读取指定时间段内包含某个子串的日志数据范围 遍历数据量 结果数 用时(秒)5小时 300万 604 6.62小时 120万 225 2.71小时 60万 96 1.330分钟 30万 44 0.6索引只对日志记录的时间做索引, 简介里大概说了下索引的实现,二分查找肯定没B Tree效率高,但一般情况下也差不了一个数量级,而且实现特别简单。因为是稀疏索引,并不是每条日志都有索引记录它的偏移量,所以读取数据时要往前多读一些数据,防止漏读,等读到真正所需的数据时再真正给用户返回数据。如下图,比如用户要读取25到43的日志,用二分法找25,找到的是30所在的点,索引:0
50 日志:|.........|.........|.........|.........|.........|&&&a = [0, 10, 20, 30, 40, 50]&&&bisect.bisect_left(a, 35)&&&3&&&a[3]&&&30&&&bisect.bisect_left(a, 43)&&&5&&&a[5]&&&50所以我们要往前倒一些,从20(30的前一个刻度)开始读取日志,21,22,23,24读取后因为比25小,所以扔掉, 读到25,26,27,...后返回给用户读取到40(50的前一个刻度)后就要判断当前数据是否大于43了,如果大于43(返回全开区间的数据),就要停止读了。整体下来我们只操作了大文件的很少一部分就得到了用户想要的数据。缓冲区为了减少写入日志时大量的磁盘写,索引在append日志时,把buffer设置成了10k,系统默认应该是4k。同理,为了提高读取日志的效率,读取的buffer也设置了10k,也需要根据你日志的大小做适当调整。索引的读写设置成了行buffer,每满一行都要flush到磁盘上,防止读到不完整的索引行(其实实践证明,设置了行buffer,还是能读到半拉的行)。查询啥?要支持SQL,别闹了,100行代码怎么支持SQL呀。现在查询是直接传入一个lambada表达式,系统遍历指定时间范围内的数据行时,满足用户的lambada条件才会返回给用户。当然这样会多读取很多用户不需要的数据,而且每行都要进行lambda表达式的运算,不过没办法,简单就是美呀。以前我是把一个需要查询的条件和日志时间,日志文件偏移量都记录在索引里,这样从索引里查找出符合条件的偏移量,然后每条数据都如日志文件里seek一次,read一次。这样好处只有一个,就是读取的数据量少了,但缺点有两个:索引文件特别大,不方便加载到内存中每次读取都要先seek,貌似缓冲区用不上,特别慢,比连续读一个段的数据,并用lambda过滤慢四五倍写入前面说过了,只append,不修改数据,而且每行日志最前面是时间戳。多线程查询数据,可以多线程同时查询,每次查询都会打开一个新的日志文件的描述符,所以并行的多个读取不会打架。写入的话,虽然只是append操作,但不确认多线程对文件进行append操作是否安全,所以建议用一个队列,一个专用线程进行写入。锁没有任何锁。排序默认查询出来的数据是按时间正序排列,如需其它排序,可取到内存后用python的sorted函数排序,想怎么排就怎么排。100多行的数据库代码# -*- coding:utf-8 -*-
import time
import bisect
import itertools
from datetime import datetime
import logging
default_data_dir = './data/'
default_write_buffer_size = 1024*10
default_read_buffer_size = 1024*10
default_index_interval = 1000
def ensure_data_dir():
if not os.path.exists(default_data_dir):
os.makedirs(default_data_dir)
def init():
ensure_data_dir()
class WawaIndex:
def __init__(self, index_name):
self.fp_index = open(os.path.join(default_data_dir, index_name + '.index'), 'a+', 1)
self.indexes, self.offsets, self.index_count = [], [], 0
self.__load_index()
def __update_index(self, key, offset):
self.indexes.append(key)
self.offsets.append(offset)
def __load_index(self):
self.fp_index.seek(0)
for line in self.fp_index:
key, offset
= line.split()
self.__update_index(key, offset)
except ValueError: # 索引如果没有flush的话,可能读到有半行的数据
def append_index(self, key, offset):
self.index_count += 1
if self.index_count % default_index_interval == 0:
self.__update_index(key, offset)
self.fp_index.write('%s %s %s' % (key, offset, os.linesep))
def get_offsets(self, begin_key, end_key):
left = bisect.bisect_left(self.indexes, str(begin_key))
right = bisect.bisect_left(self.indexes, str(end_key))
left, right = left - 1, right - 1
if left & 0: left = 0
if right & 0: right = 0
if right & len(self.indexes) - 1: right = len(self.indexes) - 1
logging.debug('get_index_range:%s %s %s %s %s %s', self.indexes[0], self.indexes[-1], begin_key, end_key, left, right)
return self.offsets[left], self.offsets[right]
class WawaDB:
def __init__(self, db_name):
self.db_name = db_name
self.fp_data_for_append = open(os.path.join(default_data_dir, db_name + '.db'), 'a', default_write_buffer_size)
self.index = WawaIndex(db_name)
def __get_data_by_offsets(self, begin_key, end_key, begin_offset, end_offset):
fp_data = open(os.path.join(default_data_dir, self.db_name + '.db'), 'r', default_read_buffer_size)
fp_data.seek(int(begin_offset))
line = fp_data.readline()
find_real_begin_offset = False
will_read_len, read_len = int(end_offset) - int(begin_offset), 0
while line:
read_len += len(line)
if (not find_real_begin_offset) and
(line & str(begin_key)):
line = fp_data.readline()
find_real_begin_offset = True
if (read_len &= will_read_len) and (line & str(end_key)): break
yield line.rstrip('\r\n')
line = fp_data.readline()
def append_data(self, data, record_time=datetime.now()):
def check_args():
if not data:
raise ValueError('data is null')
if not isinstance(data, basestring):
raise ValueError('data is not string')
if data.find('\r') != -1 or data.find('\n') != -1:
raise ValueError('data contains linesep')
check_args()
record_time = time.mktime(record_time.timetuple())
data = '%s %s %s' % (record_time, data, os.linesep)
offset = self.fp_data_for_append.tell()
self.fp_data_for_append.write(data)
self.index.append_index(record_time, offset)
def get_data(self, begin_time, end_time, data_filter=None):
def check_args():
if not (isinstance(begin_time, datetime) and isinstance(end_time, datetime)):
raise ValueError('begin_time or end_time is not datetime')
check_args()
begin_time, end_time = time.mktime(begin_time.timetuple()), time.mktime(end_time.timetuple())
begin_offset, end_offset = self.index.get_offsets(begin_time, end_time)
for data in self.__get_data_by_offsets(begin_time, end_time, begin_offset, end_offset):
if data_filter:
if data_filter(data):
yield data
yield data
def test():
from datetime import datetime, timedelta
import uuid, random
logging.getLogger().setLevel(logging.NOTSET)
def time_test(test_name):
def inner(f):
def inner2(*args, **kargs):
start_time = datetime.now()
result = f(*args, **kargs)
print '%s take time:%s' % (test_name, (datetime.now() - start_time))
return result
return inner2
return inner
@time_test('gen_test_data')
def gen_test_data(db):
now = datetime.now()
begin_time = now - timedelta(hours=5)
while begin_time & now:
print begin_time
for i in range(10000):
db.append_data(str(random.randint(1,10000))+ ' ' +str(uuid.uuid1()), begin_time)
begin_time += timedelta(minutes=1)
@time_test('test_get_data')
def test_get_data(db):
begin_time = datetime.now() - timedelta(hours=3)
end_time = begin_time + timedelta(minutes=120)
results = list(db.get_data(begin_time, end_time, lambda x: x.find('1024') != -1))
print 'test_get_data get %s results' % len(results)
@time_test('get_db')
def get_db():
return WawaDB('test')
if not os.path.exists('./data/test.db'):
db = get_db()
gen_test_data(db)
#db.index.fp_index.flush()
db = get_db()
test_get_data(db)
if __name__ == '__main__':
原文链接:http://www.pythontab.com/html/2013/pythonhexinbiancheng_.html
阅读: 1066 |Python 适合大数据量的处理吗? - 知乎879被浏览<strong class="NumberBoard-itemValue" title="4,489分享邀请回答1557 条评论分享收藏感谢收起1032 条评论分享收藏感谢收起> 问题详情
迅雷离线下载完成但是下载不到本地后面写着连接资源跟么什么都没有但是离线显示是100%已经完成的就是下
悬赏:0&答案豆
提问人:匿名网友
发布时间:
迅雷离线下载完成但是下载不到本地后面写着连接资源跟么什么都没有但是离线显示是100%已经完成的就是下载不到本地我是迅雷年费VIP会员
网友回答(共0条)展开
您可能感兴趣的试题
1一、单项选择题(每小题1分,共20分)1、存储在计算机内有组织可共享的数据的集合是()。A.数据库系统&&&&&&&&&&&&B.数据库&&&C.数据库管理系统&&&&&&&&D.数据结构&&2、数据库中,数据的物理独立性是()。&&&&&&&&&&&&&&&&&&&&。A.数据库与数据库管理系统的相互独立&&&&&B.用户程序与DBMS的相互独立C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的D.应用程序与数据库中数据的逻辑结构相互独立&&3、数据库系统的核心是()。A.数据库&&&&&&&&&&&&&&&&&&&&&&&&&&&&&B.数据库管理系统&&&&&C.数据模型&&&&&&&&&&&&&&&&&&&&&&&&&&&D.软件工具&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&4、在数据库中,产生数据不一致的根本原因是()。A.数据存储量太大&&&&&&&&&&&&&&&B.没有严格保护数据&&&C.未对数据进行完整性控制&&D.数据冗余5、数据库系统的特点是数据独立、减少数据冗余、避免数据不一致、加强了数据保护和()。A.数据共享&&&&&&&&&&&&&&&&&&&&&&&&&&&B.数据存储&&&C.数据应用&&&&&&&&&&&&&&&&&&&&&&&&&&&D.数据保密&&6、层次模型不能直接表示()。A.1:1联系&&&&&&&&&&&&&&B.1:m联系&&C.m:n联系&&&&&&&&&&&D.1:1和1:m联系&&&7、&关系模型的完整性包括()A.实体完整性&&&&&&&&&&&&&&&&&&&&&B.&参照完整性C.&用户自定义完整性&&&&&&&&D.以上都是8、描述数据库全体数据的全局逻辑结构和特性的是()。a.模式&&&&&&&&&&b.内模式&c.外模式&d.用户模式9、用户或应用程序看到的局部逻辑结构和特征的描述是()。a.模式&&&&&&&&&&&&b.物理模式c.子模式&&&&&d.内模式10、关系数据库管理系统应能实现的专门关系运算包括()。A.排序、索引、统计&&&&B.选择、投影、连接C.关联、更新、排序&&&&D.显示、打印、制表&11、一个关系只有一个()。a.候选码&&&&&&&&&b.外码&&&&&&&&&&&c.超码&&&&&&&&&&&d.主码12、现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本,则该关系模式的主码是()。&&a.书号&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&b.读者号&&c.书号+读者号&&&&&&&&&&&&&&&&&&&&&&&d.书号+读者号+借期13、五种基本关系代数运算是()。a.∪-×σπ&&&&&&&&&&&&&&&&&b.∪-σπ÷c.∪∩×σπ&&&&&&&&&&&&&&&&&d.∪∩σπ÷14、SQL语言是()语言。A.层次数据库&&&&&&&&&&&&&&&&B.网状数据库&&&C.关系数据库&&&&&&&&&&&&&&&&D.非数据库&&&15、在sql语言中的视图view是数据库的()。a.外模式&&&&&b.模式&&&&&&&&&&c.内模式&&&&&&d.存储模式16、下列的sql语句中,()不是数据定义语句。a.create table&&&&&&&&&b.drop viewc.create view&&&&&&&&&&&d.grant17、保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据的()。A.安全性&&&&&&&B.完整性&&&&&&&C.并发控制&&&&D.恢复&&&&&&&&&&&&&18、候选码中的属性称为()。A.非主属性&&&&&&&&&&&&&&&&&&&&&&B.主属性&&&C.复合属性&&&&&&&&&&&&&&&&&&&&&&D.关键属性&&&&&&&&&&&&&&&&&&&&&&&19、数据库设计可划分为七个阶段,每个阶段都有自己的设计内容,“为哪些关系,在哪些属性上、键什么样的索引”这一设计内容应该属于()设计阶段。&&a.概念设计&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&b.逻辑设计&&c.物理设计&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&d.全局设计20.事务的一致性是指()。A.事务中包括的所有操作要么都做,要么都不做&&&&&B.事务一旦提交,对数据的改变是永久的C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的&D.事务必须是使数据库从一个一致性状态变到另一个一致性状态&&得分&二、用SQL语句完成下操作(每小题5分,共50分)设仓库管理数据库中有两个表,仓库:仓库号、城市、面积,职工:仓库号、职工号、工资,一个仓库有若干职工,一个职工只能在一个仓库工作。1、查询“上海”的职工信息。2、查询工资高于5000的职工的职工号。3、查询工资高于3000的职工号和他们所在城市。4、查询北京的仓库职工的工资总和。5、查询有职工工资大于或等于“WH1”仓库中所有职工的工资的仓库号。6、插入一条职工信息(“WH2”,“E7”,4500)。7、将仓库“WH5”的面积修改为500。8、删除职工“E9”的信息。9、创建“WH1”仓库的职工信息视图,视图名为“V_WH1”。10、把对仓库表的查询权限授予“WANG”用户。&&得分&三、(共10分)某工厂,每个车间可对多台设备维修,每台设备也可在多个车间维修,每台设备维修要使用多种工具,每种工具也可用于多台设备维修,有关车间、设备、工具的描述如下:车间:车间号、&车间名设备:设备号、设备名、产地工具:工具号、工具名、备注请画出反映上述数据关系的E-R图并转换为等价的关系模式(包括关系名,属性,码)&&&得分&四、(共8分)有关系模式R<U,F>,U={A,B,C,D,E},F={AB→C,B→D,C→E },1、判断关系模式的范式等级2、求(BC)关于F的闭包。&&得分&五、简答题(每小题4分,共12分)1、事务的ACID特性是什么?2、什么是两段锁协议?3、数据库系统中故障的种类有哪几种?2窗体、报表、数据访问页三者之间的关系?尽量详解,谢!3使用超链接时,使用绝对地址好,还是使用相对地址好,为什么?尽量详解,谢!4在Access中,对字段进行排序时,最多可以设置____个排序字段。
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
每天只需0.4元
选择支付方式
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
恭喜你被选中为
扫一扫-免费查看答案!
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
提示:请截图保存您的账号信息,以方便日后登录使用。
常用邮箱:
用于找回密码
确认密码:

我要回帖

更多关于 小程序 image上写字 的文章

 

随机推荐