数据库程序员面试分模拟题11.docx

上传人:王** 文档编号:1343173 上传时间:2024-06-20 格式:DOCX 页数:13 大小:38.90KB
下载 相关 举报
数据库程序员面试分模拟题11.docx_第1页
第1页 / 共13页
数据库程序员面试分模拟题11.docx_第2页
第2页 / 共13页
数据库程序员面试分模拟题11.docx_第3页
第3页 / 共13页
数据库程序员面试分模拟题11.docx_第4页
第4页 / 共13页
数据库程序员面试分模拟题11.docx_第5页
第5页 / 共13页
数据库程序员面试分模拟题11.docx_第6页
第6页 / 共13页
数据库程序员面试分模拟题11.docx_第7页
第7页 / 共13页
数据库程序员面试分模拟题11.docx_第8页
第8页 / 共13页
数据库程序员面试分模拟题11.docx_第9页
第9页 / 共13页
数据库程序员面试分模拟题11.docx_第10页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据库程序员面试分模拟题11.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分模拟题11.docx(13页珍藏版)》请在优知文库上搜索。

1、数据库程序员面试分模拟题11茴答题1. OS级别删除了数据文件后如何恢且?正确答案:若使用了“A1.TERDATABSEDATAFI1.ENOFF1.INEDROP;,命令,则并不会删除数(江南博哥)据文件,这个时候可以先ON1.lNE后再用“A1.TERTAB1.ESPACEXXXDROPDATAFI1.EN;删除。如果执行“A1.TERDTBSEDATAFI1.ENOFF1.INEDROP;后并在OS级别删除了数据文件,那么首先需要使用“A1.TERDTBSECREATEDATAFI1.ENS*/tmp/ts_dd_lhr02.dbf,来添加一个数据文件,然后再执行RECOVER并ON1.

2、INE后再用“A1.TERTAB1.ESPACEXXXDROPDATAFI1.E、:”命令删除。如果产生的H志文件已经丢失,那么目标文件就不能再恢复了,这个时候只能删除表空间了,命令为“DROPTAB1.ESPACEXXXINC1.UDINGCONTENTSANDDATAFI1.ES;,。考点RMAN2. 存储过程和函数的区别是什么?正确答案:存储过程和函数都是存储在数据库中的程序,可由用户直接或间接调用,它们都可以有输出参数,都是由一系列的SQ1.语句组成。具体而言,存储过程和函数的不同点如下:1)标识符不同。函数的标识符为FUNCTlON,存储过程为PROCEDURE。2)函数必须有返回值

3、,且只能返回一个值,而存储过程可以有多个返回值。3)存储过程无返回值类型,不能将结果直接赋值给变量;函数有返回值类型,在调用函数时,除了用在SE1.ECT语句中,在其他情况下必须将函数的返回值赋给一个变量。4)函数可以在SE1.ECT语句中直接使用,而存储过程不能。例如,假设已有函数FUNGE函VGO返回NuMBER类型绝对值,那么,SQ1.语句“SE1.ECTFUNGETAVG(CO1.A)FROMTAB1.Ew是合法的。考点存储过程3. 在OraCIe中,创建视图的语法形式是怎样的?正确答窠:在Oracle中创建视图的语法如下:CREATEORREP1.ACE1ORCEVIEWSCHEMA

4、.VIE忆NAME(CO1.UMNl,C01.UMN2,.)ASSE1.ECT.WITHCHECKOPTIONCONSTRAINTCONSTRAlNT_NAMEWITHREADON1.Y:考点视图4. tkprof的作用是什么?正确答案:tkprof是一个调优工具,用于格式化10046事件和SQ1.TRACE生成的trace文件。需要注意的是,不能使用tkprof工具来处理10053事件产生的trace文件。在OS命令行中宜接输入tkprof就可以获得一个完整的参数列表.tkprof的格式如下:tkproftracefileoutputfiIeoptions考点性能诊断5. 什么是存储过程?正

5、确答案:存储过程是用户定义的一系列SO1.语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值,并且不涉及特定用户表。存储过程用于执行特定的操作,可以接收输入参数、输出参数,返回单个或多个结果集。在创建存储过程时,既可以指定输入参数(IN),也可以指定输出参数SUT),通过在存储过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数,可以将执行结果传递到应用环境。存储过程可以使对数据库的管理、显示数据库及其用户信息的工作更加容易。考点存储过程6. NoSQ1.兴起的原因有哪些?正确答案:大数据技术近儿年发展十分迅速,

6、在互联网公司以及传统公司都得到了广泛的应用。传统的关系数据库在应付Neb2.0网站,特别是超大规模和高并发的SNS(SocialNetworkSite,社交网)类型的Neb2.0纯动态网站己经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库NOSQ1.(NOtOnlySQ1.,泛指非关系型的数据库,意即“不仅仅是SQ1.”)则由于其本身的特点得到了非常迅速的发展,NoSQ1.数据库的产生就是为了解决大规模数据集合以及多重数据种类带来的挑战,尤其是大数据应用难题。NoSQ1.的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。NO

7、SQ1.的兴起原因主要是随着需eb2.0时代的到来,关系型数据库越来越不能满足互联网应用的需求,从而产生了NoSQ1.。这些需求包括:数据的高并发读写;数据的高可用性;海量数据存储:海量数据的实时分析等。考点NoSQ1.7. 什么是自连接?正确答案:自连接(SelfJoin)是SQ1.语句中的一种特殊连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。例如,在SCOTT.EMP中的每一个员工都有自己的MGR(经理),并且每一个经理Fl身也是公司的员工,自身也有H己的经理。如果需要将每一个员工自己的名字及其经理的名字都查询出来,SQ1.语句应该如何写呢?这个

8、时候就可以用到自连接/最终SQ1.如下:SE1.ECTA.ENAMEWORKER,B.ENMEMANAGERFROMSCOTT.EMPA,SCOTT.EMPBWHEREA.MGR=B.EMBNOORDERBYA.ENAME;对于II:等值连接,理解起来比较简单,即表和表之间是通过等值运算符来连接的,例如,O.BETWEEN.AND.等,如下:SE1.ECTEMP.EMPNO,EMP.ENAME,DEPT.1.OCFROMSCOTT.EMPINNERJOINSCOTT.DEPTONEMP.DEPTNOODEPT.DEPTNOWHEREEMPN0=7788ORDERBYEMPNO;8. MySQ1

9、.有哪些命令可以查看锁?正确答案:有如下几个命令:(l)showprocesslistshowprocesslist;显示哪些线程正在运行。如果有SUPER权限,那么就可以看到所有线程。如果有线程在UPDATE或者INSERT某个表,此时进程的StatUS为UPdating或者Sendingdata。”showprocessIist;,只列出前100条,如果想全列出,那么可以使用“showlullprocesslist;,0下面是一些常见的状态。状态含义CheckingtableClosingtables正在检查数据表(这是自动的)正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表。这

10、是一个很快的操作,如果不是这样的话,那么就应该确认磁盘空间是否已经满了或者磁盘是甭正处于重负中Connectout及制从服务器正在连接主服务器Copyingtotmptableondisk由于临时结果集大于map_tablc_size正在将临时表从内存存储转为磁盘存储,以此节省内存Creatingtmptable正在创建临时表以存放部分查询结果DeletingfrommaintableDeletingfromreferencetablesFlushingtablesKilied1.ockedSendingdataSortingforgroupSortingfororderOpeningtabl

11、esRemovingduplicatesReopentableRepairbysortingRepairwithkeycacheSearchingrowsforupdateSleepingSystemlock服务器正在执行多表删除中的第一部分,刚删除第一个表服务器正在执行多表删除中的第二部分,正在删除其他表的记录正在执行F1.USHTAB1.ES,等待其他线程关闭数据表发送了一个kill请求给某线程,那么这个线程将会检查kill标志位,同时会放弃下一个kill请求。MySQ1.会在每次的主循环中检查kill标志位,不过有些情况下该线程可能会过一小段才能死掉。如果该线程被其他线程锁住1.那么ki

12、ll请求会在锁释放时马上生效被其他查询锁住了正在处理SE1.ECT查询的记录,同时正在把结果发送给客户端正在为GKOUPBY做排序正在为ORDERBY做排序这个过程应该会很快,除非受到其他因素的干扰。例如,在执行完A1.TERTAB1.E或1.oeKTAB1.E语句以前,数据表无法被其他线程打开。正尝试打开一个表正在执行一个SE1.ECTDlSTINCT方式的咨询,但是MySQ1.无法在前一个阶段优化掉那些重复的记录。因此,MySQ1.需要再次去掉重复的记录,然后再把结果发送给客户端获得了对一个表的锁,但是必须在表结构修改之后才能获得这个锁。已经释放锁,关闭数据表,正尝试重新打开数据表修复指令

13、正在排序以创建索引修复指令正在利用索引缓存一个一个地创建新索引。它会比RePairbySOrting慢些正在将符合条件的记录找出来以备更新。它必须在UPDATE要修改相关的记录之前就完成了正在等待客户端发送新请求正在等待取得一个外部的系统锁。如果当前没有运行多个mysqld服务器同时请求同一个表,那么可以通过增加一skip-extemalTocking参数来禁止外部系统锁UpgradinglockUpdatingUserlockWaitingfortablesINSERTDE1.AYED正在尝试取得一个锁表以插入新记录正在搜索匹配的记录,并且修改它们正在等待GET1.OCKO该线程得到通知,数

14、据表结构已经被修改了,需要重新打开数据表以取得新的结构。然后,为了能重新打开数据表,必须等到所有其他线程关闭这个表。以下几种情况下会产生这个通知:F1.USHTAB1.EStbl_name,A1.TERTAB1.E,RENAVETAB1.E,REPAIRTAB1.E,ANA1.YZETAB1.E或OPTIMIZETAB1.EWaitingforhandlerINSERTDE1.AYED已经处理完了所有待处理的插入操作,insert正在等待新的请求(2)showopentables这条命令能够查看当前有哪些表是打开的。in_use列表示有多少线程正在使用某张表,nameOCked表示表名是否被锁

15、,这一般发生在DRoP或RENAME命令操作这张表时。而以这条命令不能杳询到当前某张表是否有死锁,谁拥有表上的这个锁等。常用命令如下:showopentablefromdb_name:showopentableswherein_use0;(3)showengineinnodbstatusG;这条命令查询innodb引擎的运行时信息。(4)查看服务器的状态showstatuslike,%lock%;(5)查询IyformatioN-SCHEVa用户下的表通过informtion-shcem下的Innodillocks.INNODB_1.OCK_WAITS和Innodbjkx这三张表可以更新监控当前事务异且分析存在的软问题。查看当前状态产生的inn。CIb锁,仅在有锁等待时有结果输出:SE1.ECT*1ROMINFORMATlOMSCHEMA.1NNoDB_1.OCKS;查看当前状态产生的innodb锁等待,仅在看锁等待时有结果输出:SE1.ECT*FROMINFORMATION_SCHEMA.INNODB_1,OCK_WAITS;当前innodb内核中的活跃ACTIVE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据库

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!