返回顶部
首页 > 资讯 > 数据库 >数据库相关基础是怎么样的
  • 614
分享到

数据库相关基础是怎么样的

2024-04-02 19:04:59 614人浏览 泡泡鱼
摘要

数据库相关基础是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 数据库相关基础  0.1数据库基础

数据库相关基础是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

 数据库相关基础
  
0.1数据库基础 ---------------------------------
这段代码有什么不足之处?
    try {
      Connection conn = ...;
      Statement stmt = ...;
      ResultSet rs = stmt.executeQuery("select * from table1");
      while(rs.next()) {}
    } catch(Exception ex) { }
    答:没有finally语句来关闭各个对象,另外,使用finally之后,要把变量的定义放在try语句块的外面,以便在try语句块之外的finally块中仍可以访问这些变量。

    0.1.1 不借助第三方工具,怎样查看sql的执行计划?
         set autot on
         explain plan set statement_id = &item_id for &sql;
         select * from table(dbms_xplan.display);

  0.2数据库应用 ---------------------------------
   0.2.1 大数据量下的分页解决方法。
    答:最好的办法是利用sql语句进行分页,这样每次查询出的结果集中就只包含某页的数据内容。再sql语句无法实现分页的情况下,可以考虑对大的结果集通过游标定位方式来获取某页的数据。
    sql语句分页,不同的数据库下的分页方案各不一样,下面是主流的三种数据库的分页sql:
    SQL Server:
           String sql =
           "select top " + pageSize + " * from students where id not in" +
           "(select top " + pageSize * (pageNumber-1) + " id from students order by id)" +
               "order by id";
    Mysql:
           String sql =
           "select * from students order by id limit " + pageSize*(pageNumber-1) + "," + pageSize;          
    oracle:    
           String sql =
             "select * from " +
              (select *,rownum rid from (select * from students order by postime desc) where rid<=" + pagesize*pagenumber + ") as t" +
             "where t>" + pageSize*(pageNumber-1);
    0.2.2 oracle index ?
        1.index需要储存空间和I/O操作。
    2.index的目的是加快select的速度的。
    3.insert,update,delete数据oracle会同时对索引进行相应的调整,因此会增加一定的消耗。
    4.使用index一定能加快select速度吗?不是的,数据少和巨大时index会影响select的速度,因此如果查询速度可以满足,就不要建index。
    5.Index 对null 无效。
        说说索引的组成?
        索引列、rowid

   0.2.3 数据库性能优化主要一下几个方面:?
        1、sql语句的执行计划是否正常
    2、减少应用和数据库的交互次数、同一个sql语句的执行次数
    3、数据库实体的碎片的整理(特别是对某些表经常进行insert和delete动作,尤其注意,索引字段为系列字段、自增长字段、时间字段,对于业务比较频繁的系统,最好一个月重建一次)
    4、减少表之间的关联,特别对于批量数据处理,尽量单表查询数据,统一在内存中进行逻辑处理,减少数据库压力(java处理批量数据不可取,尽量用c或者c++ 进行处理,效率大大提升)
    5、对访问频繁的数据,充分利用数据库cache和应用的缓存
    6、数据量比较大的,在设计过程中,为了减少其他表的关联,增加一些冗余字段,提高查询性能

0.2.4 Oracle用了多久?char与varchar2的区别?
    Char是固定长度字符串,varchar2是变长字符串。
    比如在char(10)和varchar2(10)中插入test字符串那么char(10)类型长度就是10,不足的用空格补齐,而varchar2(10)类型长度就是4。

 0.2.5 如何跟踪某个session的SQL?
        exec dbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);
    select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1);
    exec dbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,”);

0.3数据库架构和扩展 ---------------------------------
   0.3.1 ACID, BASE和CAP概念解释?
        分布式领域CAP理论
    Consistency(一致性), 数据一致更新,所有数据变动都是同步的,最终一致性
    Availability(可用性), 好的响应性能
    Partition tolerance(Tolerance of network Partition分区容错性) 网络分区容忍性(可理解为部分节点故障或节点之间连接故障下系统仍可正常工作)
    定理:任何分布式系统只可同时满足二点,没法三者兼顾。
    忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。
    什么是ACID?
      DBMS 强调ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性 (Durability)。其中的一致性强调当程序员定义的事务完成时,数据库处于一致的状态,如对于转帐来说,事务完成时必须是A少了多少钱B就多了多 少钱。
    什么是BASE?
     BASE:Basically Availble --基本可用;Soft-state --;Eventual Consistency --最终一致性
0.3.2 说出数据连接池的工作机制是什么?
    J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
    实现方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正关连接,而是把它代理的Connection对象还回到连接池中。
0.3.3 DELETE和TRUNCATE的区别?
    答:1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
      2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
      3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
      4、TRUNCATE不能触发任何DELETE触发器。
      5、不能授予任何人清空他人的表的权限。
      6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
      7、不能清空父表。
        比较truncate和delete 命令?
    解答:两者都可以用来删除表中所有的记录。区别在于:
         truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.

0.3.4 索引重建的概念? 说说索引重建的意义?
    当我们创建索引时,oracle会为索引创建索引树,表和索引树通过rowid(伪列)来定位数据。当表里的数据发生更新时,oracle会自动维护索引树。但是在索引树中没有更新操作,只有删除和插入操作。
    例如在某表id列上创建索引,某表id列上有值“101”,当我将“101”更新为“110”时,oracle同时会来更新索引树,但是oracle先将索引树中的“101”标示为删除(实际并未删除,只是标示一下),然后再将“110”写到索引树中。
    如果表更新比较频繁,那么在索引中删除标示会越来越多,这时索引的查询效率必然降低,所以我们应该定期重建索引。来消除索引中这些删除标记。
    一般不会选择先删除索引,然后再重新创建索引,而是rebuild索引。在rebuild期间,用户还可以使用原来的索引,并且rebuild新的索引时也会利用原来的索引信息,这样重建索引会块一些。

0.3.5 如何查看生产环境数据库服务器SQL性能状态?
        TKPROF SQL trace 工具收集正在执行的SQL的性能状态数据并记录到一个跟踪文件中。 这个跟踪文件提供了许多有用的信息,例如解析次数。执行次数,CPU使用时间等。这些数据将可以用来优化你的系统。
     设置SQL TRACE在会话级别:
     有效
     ALTER SESSION SET SQL_TRACE TRUE
     设置SQL TRACE 在整个数据库有效性, 你必须将SQL_TRACE参数在init.ora中设为TRUE, USER_DUMP_DEST参数说明了生成跟踪文件的目录

关于数据库相关基础是怎么样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: 数据库相关基础是怎么样的

本文链接: https://lsjlt.com/news/67430.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 数据库相关基础是怎么样的
    数据库相关基础是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 数据库相关基础  0.1数据库基础 ...
    99+
    2024-04-02
  • MySQL数据库基础架构是怎么样的
    这篇文章给大家分享的是有关MySQL数据库基础架构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.Application LayerMySQL的应用层提供各种用户对数...
    99+
    2024-04-02
  • 相关ADO.NET数据库是怎样连接调试
    这期内容当中小编将会给大家带来有关相关ADO.NET数据库是怎样连接调试,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ADO.NET数据库 开发内容包括:更容易的设计集成、扩充的部署选项、更为丰富多彩的登...
    99+
    2023-06-17
  • MySQL关系型数据库的基础概念是什么
    这篇文章主要介绍“MySQL关系型数据库的基础概念是什么”,在日常操作中,相信很多人在MySQL关系型数据库的基础概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL关系型数据库的基础概念是什么...
    99+
    2023-06-20
  • Python基础中os和数据结构是怎么样的
    Python基础中os和数据结构是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。今天总结了下Python的基础,发现还是有很多基础需要巩固,直接把学习的...
    99+
    2023-06-04
  • 数据库基础知识是什么
    本篇文章为大家展示了数据库基础知识是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。数据库的存储方式人工管理阶段文件系统阶段数据库系统管理阶段大数据big dat...
    99+
    2024-04-02
  • Docker的基础理论与关键点是怎么样的
    Docker的基础理论与关键点是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一般来说,虚拟化既可以通过硬件模拟来实现,例如 Vmware、KVM等,主要是通过虚拟硬件...
    99+
    2023-06-19
  • 零基础怎么学Python数据库
    本篇内容介绍了“零基础怎么学Python数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.数据库的分类关系数据库和非关系数据库1).什...
    99+
    2023-06-17
  • Python基础之数据类型相关知识总结
    1、字符串 (1)概念 字符串英文名string,简称str。 字符串就是由一个个字符连接起来的组合, 你平时所见的字母、数字、汉字、符号都是字符。 字符串可以用...
    99+
    2024-04-02
  • 关系数据库模型是什么样的
    这篇文章将为大家详细讲解有关关系数据库模型是什么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。关系数据库模型是现代数据库技术的基础,它使这一领域具有了科...
    99+
    2024-04-02
  • MySQL数据库基本设计规范是怎么样的
    这篇文章将为大家详细讲解有关MySQL数据库基本设计规范是怎么样的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。所有表必须使用Innodb存储引擎   ...
    99+
    2024-04-02
  • JavaScript基础语法是怎样的
    本篇文章为大家展示了JavaScript基础语法是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JavaScript发展历史(J...
    99+
    2024-04-02
  • 关于mysql的相关操作是怎样的
    这篇文章将为大家详细讲解有关关于mysql的相关操作是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、Mysql用户密码修改mysql密码修改有多种...
    99+
    2024-04-02
  • 怎么处理MySQL数据库相关异常
    怎么处理MySQL数据库相关异常,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  大家都明白,任何数据库在使用过程中,发生异常是不可避免的。下...
    99+
    2024-04-02
  • python基础的总结是怎样的
    这篇文章将为大家详细讲解有关python基础的总结是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的设计目标之一是让代码具备高度的可阅读性...
    99+
    2024-04-02
  • Redis数据库的基础知识
    【redis是什么】redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io...
    99+
    2024-04-02
  • MySQL 数据库的基础知识
    目录1. 认识数据库1.1 数据库和数据结构的关系1.2 为什么需要数据库1.3 数据库的存储2. SQL2.1 介绍2.2 分类3. 数据库的类别3.1 关系型数据库3.2 非关系...
    99+
    2024-04-02
  • 关系数据库系统中使用的数据结构是怎样的
    小编给大家分享一下关系数据库系统中使用的数据结构是怎样的,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!关系数据库系统中使用的数据结构是二维表。在关系型数据库系统中,所有的数据都采用二维表的...
    99+
    2024-04-02
  • MySQL数据库优化是怎么样的
    这期内容当中小编将会给大家带来有关MySQL数据库优化是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的...
    99+
    2024-04-02
  • ZABBIX数据库表是怎样的
    ZABBIX数据库表是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。zabbix数据库表结构的重要性想理解zabbix的前端代码、做...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作