MyException - 我的异常网
当前位置:我的异常网» Sql Server » 请问一个有关索引的有关问题(高分送出)

请问一个有关索引的有关问题(高分送出)

www.MyException.Cn  网友分享于:2013-03-02  浏览:7次
请教一个有关索引的问题(高分送出)
两个有关学生成绩的表
A.学生成绩表
考试编码   年级编码   班级编码   学号编码   成绩   班排名   年排名   ...
-------------------------

B.学生总成绩表
考试编码   年级编码   班级编码   学号编码   总成绩   班排名   年排名   ...
--------------------------

要求:
1.每个年级的每次考试成绩记录数大约为1万条(行),基本上在一次输入后,不会轻易修改数据;
2.在成绩输入完成后,要对班排名/年排名,以及总成绩的班排名/年排名进行计算汇总;
3.A表可能在一定情况下会要求取总成绩的班排名或年排名,也就是说A表要与B表关联

需求:
因为成绩表和总成绩表的数据量会很大,如何对两个表设计索引,提高对成绩和总成绩的查询/更新/插入操作速度...




------解决方案--------------------
关注
------解决方案--------------------
貌似很难同时提高查询修改,插入等操作的吧,建立索引的同时就降低了插入的效率...
------解决方案--------------------
关注,学习.
------解决方案--------------------
是呀,我也想知道,难道这里没人会??
------解决方案--------------------
学习
------解决方案--------------------
在大型数据库,索引是为了加快查询速度.
通常用对where做条件的列,建立索引
------解决方案--------------------
A.学生成绩表
考试编码 年级编码 班级编码 学号编码 成绩 班排名 年排名 ...
-------------------------

B.学生总成绩表
考试编码 年级编码 班级编码 学号编码 总成绩 班排名 年排名 ...
--------------------------
先不说搂主讨论的索引问题,揣测一下数据表的结构吧:
A表--
考试编码 ,估计用于区别考试科目了,不知道1年级考的数学和2年级考的数学编码是否一样,那么上学期和下学期考数学是否一样?还是同一年级同一科目都是一个编码? 还是将考试编码设计成复合的,比如‘2005A3SX’2005年上学期3年级数学科目考试?
年级编码 ,估计区别同一个学生同一科目在不同年级时候的不同成绩吧,调取历史考试成绩应该游泳。也为年排名准备筛选条件了。
班级编码 ,区别不同的班级了
学号编码 ,
成绩 ,

班排名 ,???这个很有问题啊,按这样的结构,搂主的系统应该这样维护数据:增加、删除、修改一条记录的时候,遍历所有同一个班级的同一个考试编号 的同一个年级编号的所有记录,去修改遍历过的记录的当前字段 hoho

年排名 ,???这个比上面的还狠,按这样的结构,搂主的系统应该这样维护数据:增加、删除、修改一条记录的时候,遍历所有同一个年级的同一个考试编号 的所有记录,去修改遍历过的记录的当前字段 hoho hoho

另外修改(增、删) A 表中的任意一条记录,都要维护 B 表中的所有相关记录!!

不如这样:
A学生成绩

年度 , 级 , 班 , 科目 ,考试编号 ,学生(编号),成绩
---------------------------
2005年 3年级 2班 数学 第1次考试 001学生 120分

其实从整个系统考虑的话可能也不是这样,就说学生编号,至少能分辨出哪一年入学的吧,或还有其它信息,那有些机构又可以调整。

B表?! 还是用几个视图吧,SQL Server 几万条记录应该不会有多慢的。

总之,先把表结构设计好,才好讨论其它的。

------解决方案--------------------
简单分析一下A表,考试编码 年级编码 班级编码 学号编码 成绩 班排名 年排名
其中年级编码 班级编码 学号编码属于学生的个人信息,而其余字段为每次考试所有考试科目的明细,两者应该是属于master-detail的关系。个人认为不应该这样设计。
------解决方案--------------------
友情帮顶一下:)
------解决方案--------------------
早上來幫你頂一下,
索引這塊我也比較模糊,幫不上忙了
------解决方案--------------------
我记得微软书本上说过:
--------------------------
索引可以提高查询的速度
但是会降低插入、更新的速度
------------------------------------------------
lz要同时实现查询、更新和插入的功能,我还是学习了
------解决方案--------------------
up,楼上的观点是正确的
------解决方案--------------------

1> 建议这样设计,
设计一:
A表作为基础数据表,去掉B表
B表的数据由A表统计出来,几W数据优化查询和建立了索引,是很快的
可以专门写一个存储过程来统计.

设计二:
A表作为基础数据表,B表作为汇总表
B表数据由A表汇总,这个可以通过写一个存储过程,讲A表的数据汇总再插入B表
因为lZ说A表数据insert后基本很少去修改,
但是A表数据修改后,就不得不重新汇总B表了,这个是一个问题哟!
[如果是Oracle就好了,物化视图就是解决这个问题的好东西!!]

文章评论

一个程序员的时间管理
一个程序员的时间管理
如何成为一名黑客
如何成为一名黑客
总结2014中国互联网十大段子
总结2014中国互联网十大段子
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
中美印日四国程序员比较
中美印日四国程序员比较
程序员应该关注的一些事儿
程序员应该关注的一些事儿
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
漫画:程序员的工作
漫画:程序员的工作
编程语言是女人
编程语言是女人
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
为什么程序员都是夜猫子
为什么程序员都是夜猫子
10个调试和排错的小建议
10个调试和排错的小建议
 程序员的样子
程序员的样子
我是如何打败拖延症的
我是如何打败拖延症的
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员的鄙视链
程序员的鄙视链
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
鲜为人知的编程真相
鲜为人知的编程真相
旅行,写作,编程
旅行,写作,编程
老程序员的下场
老程序员的下场
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
代码女神横空出世
代码女神横空出世
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
Java程序员必看电影
Java程序员必看电影
程序员和编码员之间的区别
程序员和编码员之间的区别
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
我的丈夫是个程序员
我的丈夫是个程序员
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有