精华内容
下载资源
问答
  • 最近处理了一个问题,是数据库连接进程占用CPU性能很高问题 1、这里我先v$sesstat,v$statname,v$session 和 v$process 二个数据字典,进行关联查询,查出这些进程的连接信息 sele...
    最近处理了一个问题,是数据库连接进程占用CPU性能很高问题
    1、这里我先用v$sesstat,v$statname,v$session 和 v$process 二个数据字典,进行关联查询,查出这些进程的连接信息

    select p.spid      as os_pro_id,
           ss.sid      as ora_pro_id,
           se.serial#,
           se.osuser,
           se.machine,
           se.command,
           ss.value    CPU,
           se.username,
           se.program
      from v$sesstat ss, v$session se, v$process p
     where p.addr = se.paddr   and se.sid = ss.sid
       AND ss.statistic# in
           (select statistic#
              from v$statname
             where name = 'CPU used by this session')
       and p.spid in ('系统PID');

    2、通过查询出来的SID,再用v$sqlarea 和 v$session 关联查询出单个SID所执行的任务
    SELECT a.address, a.sql_text
      FROM V$SQLAREA a, V$SESSION b
     WHERE a.ADDRESS = b.SQL_ADDRESS
       and b.sid = 'SID'

    3、根据上面查询出来的结果基本上可以判断是哪台机子通过什么方式连接数据库执行的什么任务。






    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18762014/viewspace-1720478/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/18762014/viewspace-1720478/

    展开全文
  • 什么是QuestDB QuestDB是用于时间序列数据的高性能开源SQL数据库。 它使用面向列的方法,大量并行向量化执行,SIMD指令以及一系列低延迟技术。 整个代码库都是从头开始构建的,没有依赖关系,并且100%没有垃圾...
  • 基本上跑Web上的应用程序,不管用什么软、硬件,同时处理多个用户的request,通常都比较消耗CPU;但对数据库而言,CPU就不见得会大量消耗,而是内存和磁盘I/O用得比WebServer多。因此一般建议WebServer用普通的PC...
  • cpu一次能处理数据宽度,总线大小是4k 索引数据结构,为什么用这个结构 B+树 1、B+树是多路平衡搜索树,树高是平衡的,多次搜索的效率平均,搜索时间短 2、B+树的多路特性,可以让数据库存储引擎能够多获取一页数据...

    页的大小为什么是4K?

    cpu一次能处理数据宽度,总线大小是4k

    索引数据结构,为什么用这个结构

    B+树
    1、B+树是多路平衡搜索树,树高是平衡的,多次搜索的效率平均,搜索时间短
    2、B+树的多路特性,可以让数据库存储引擎能够多获取一页数据,提高查询的效率和命中率

    聚簇索引和非聚簇索引

    myaism非聚簇索引,数据和索引分文件存储,速度慢主键索引树和辅助索引树的叶子节点都存储的是指向数据页的指针。走两个树都能够查到数据

    innodb聚簇索引,数据和索引存在一个文件,数据行存在主键索引树的叶子节点,辅助索引的叶子节点存主键索引的指针。如果走的是辅助索引树,需要回表才能查到数据

    所以myaism适合频繁更新的数据

    mysql的执行计划 explain + SQL语句

    type:system>const>eq_ref>ref>range>index>ALL

    【1】system:表只有一行记录(系统表),平时不会出现;
    【2】const:表示通过索引一次就能找到,const用于比较 primary和 unique索引
    cows
    【3】eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。常用于主键或唯一索引扫描。eg:CEO部门;
    【4】ref:非唯一性索引扫描,返回匹配某个单独值的所有行;
    【5】rang:只检索给定范围的行,使用一个索引来选择行。一般where语句中出现between、<、>、in等的查询。这种范围扫描索引比全表扫描要好,因为只需开始索引的某一点,而结束另一点,不用扫描全部索引;
    【6】index:Full Index Scan,index与 ALL区别为 index类型只遍历索引树,索引文件通常比数据文件小。index从索引中读取,而All是从硬盘读取;
    【7】ALL:从磁盘中读取

    extra:

    【7】Using index condition:是否索引下推

    索引下推index condition pushdown

    将一部分判断条件传递给存储引擎
    引擎而是依据查询条件,过滤结果页给到数据库的服务器
    减少查表次数,减少数据读取,提高查询效率

    如何做慢 SQL 优化?

    1.创建索引:创建合适的索引,我们就可以在索引中查询,查询到以后直接找对应的额记录
    2,分表:当一张表的数据比较多或者一张表的某些字段的值比较多并且很少使用时,采用水平分表或垂直分表来优化,比如spu表
    3,读写分离:当一台服务器不能满足需要时,采用将读写分离的方式进行集群,一台机器写,其他机器读
    4.缓存:使用redis来进行缓存

    mysql索引失效的情况

    or,like,函数转换,数值没有按照类型,比如int类型加了引号。
    至于in是否会索引失效,可能是mysql版本的问题,或者是可能因为字段类型转换的问题

    分页函数limit

    mysql用limit分页,oracle用rownum分页
    table LIMIT 5 , 10 ; // 检索记录行 6 - 15
    LIMIT 95 , - 1 ; // 检索记录行 96 - last.//从96到最大
    LIMIT 5 ; // 检索前 5 个记录行
    第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

    事务的特性

    原子性,对数据的操作要么全部失败,要么全部成功
    一致性:事务开始和完成,数据保持一致
    隔离性:事务之间相互独立,中间状态不对外可见
    持久性:数据修改是永久的

    数据库事务隔离级别

    4个隔离级别
    1、读未提交
    事务B可以读到事务A未提交的数据,破坏了隔离性,一旦事务A回滚,事务B读到的就是脏数据
    2、读提交
    一个事务只会查询到其他事务已提交的数据,但是事务会读到已提交数据,会造成这个事务重复读数据时数据改变,不可重复读 破坏了一致性(update和delete)
    A事务更新或者删除数据,提交后,B事务第一次查询和第二次查询数据不一致,也就是不可重复读
    3、可重复读
    a事务对自己未存在的数据多次读取,第一次不存在,第二次存在,是一致性(insert)
    例子,事务A查询数据是7条,事务Binsert一条变成8条,提交。因为加的是行锁,不是表锁,然后A 事务更新表某个字段的所有值发现更新了8条数据,A事务幻读
    4、串行化

    innoDB事务隔离级别的实现

    锁机制:
    ru:事务读取的时候不加锁
    rc:读到的时候才加行级共享锁,读完立即释放,并不是事务结束
    rr:入去时加行级共享锁,锁事务结束后释放
    se:加表级共享锁,事务结束才释放

    MVCC多版本并发控制

    生成一个数据快照
    实际就是CAS版本控制和读写分离,主要作用域rc和rr级别

    表锁粒度和执行效率

    表锁的粒度最大,执行效率低

    表共享锁和表排他锁区别

    表读取时加的锁,允许其他事务读取,不允许写,是共享的
    表写时加的锁,不允许读写

    行锁

    行锁粒度低,冲突小,不容易死锁

    innodb默认行锁,myasim没有行锁概念,这是两者区别之一

    innodb的行锁和表锁具体的实现和区别

    innodb在走索引的时候用行锁,此时锁住的是索引列而不是所有数据
    全局查询用表锁,锁

    InnoDB间隙锁

    当我们使用范围条件查询而不是等值条件查询的时候,InnoDB就会给符合条件的范围索引加锁,在条件范围内并不存的记录就叫做"间隙(GAP)"

    Innodb和myasim死锁

    innodb会死锁
    myasim不会死锁,因为加的是表锁,是串行化的。
    但是innodb并发效率也就高

    分布式自增长主键

    1、用自增长序列,可以指定起止和步长
    2、uuid
    3、雪花算法

    Redis
    项目中使用的 Redis 版本

    Redis 在项目中的使用场景

    Redis 怎么保证高可用

    Redis 的选举流程

    Redis 和 Memcache 的区别

    Redis 的集群模式

    Redis 集群要增加分片,槽的迁移怎么保证无损

    Redis 分布式锁的实现

    Redis 删除过期键的策略

    Redis 的内存淘汰策略

    Redis 的 Hash 对象底层结构

    Redis 中 Hash 对象的扩容流程

    Redis 的 Hash 对象的扩容流程在数据量大的时候会有什么问题吗

    Redis 的持久化机制有哪几种

    RDB 和 AOF 的实现原理、优缺点

    AOF 重写的过程

    哨兵模式的原理

    使用缓存时,先操作数据库还是先操作缓存

    为什么是让缓存失效,而不是更新缓存

    缓存穿透、缓存击穿、缓存雪崩

    更新缓存的几种设计模式

    展开全文
  • 今天准备连接一台测试服务器的数据库,但是迟迟未能连上。直接登录主机,sqlplus连,一直没反应。杀掉进程也无法连接sqlplus。 实在搞不清楚为什么,抱着试试看的心情搜索了一下,却发现这是普遍现象。 下面是一...
    今天准备连接一台测试服务器的数据库,但是迟迟未能连上。直接登录主机,用sqlplus连,一直没反应。杀掉进程也无法连接sqlplus。
    实在搞不清楚为什么,抱着试试看的心情搜索了一下,却发现这是普遍现象。
    下面是一篇文章:
    http://www.2cto.com/database/201107/96741.html
    根据文中所说的几个条件,我查了一下本地的情况,服务器启动刚刚199天(uptime):
    [oracle@DB ~]$ uptime
     10:35:46 up 199 days, 53 min,  3 users,  load average: 0.05, 0.05, 0.31
    文中说从198天起刚好会出现该问题。
    数据库版本是10.2.0.1,又吻合。
    然后用strace命令跟踪了一下:
    fcntl64(6, F_SETFD, FD_CLOEXEC)         = 0
    lseek(6, 0, SEEK_SET)                   = 0
    read(6, "\25\23\"\1\23\3\t\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 256) = 256
    lseek(6, 512, SEEK_SET)                 = 512
    read(6, "\337y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
    lseek(6, 1024, SEEK_SET)                = 1024
    read(6, "\25\7'\0072\7>\7j\7\276\17$'\6K5S\24TfT\307T(VsV\222V\6W"..., 86) = 86
    times(NULL)                             = 2148613639
    times(NULL)                             = 2148613639
    times(NULL)                             = 2148613639
    times(NULL)                             = 2148613639
    times(NULL)                             = 2148613639
    times(NULL)                             = 2148613639
    times(NULL)                             = 2148613639
    基本确定是bug引起:
    事实上只要Linux x86主机运行天数是是24.8的倍数都有可能引发该bug,因为time()函数值为null,造成无限死循环,从而耗尽cpu。

    解决办法有三种:
    1、重启服务器(治标不治本);
    2、数据库版本升级(比较耗时);
    3、打patch;

    以下是patch过程:
    [oracle@DB packages]$ unzip p4612267_10201_LINUX32bit_198days.zip 
    Archive:  p4612267_10201_LINUX32bit_198days.zip
       creating: 4612267/
       creating: 4612267/files/
       creating: 4612267/files/lib/
       creating: 4612267/files/lib/libcore10.a/
      inflating: 4612267/files/lib/libcore10.a/sltrg.o  
       creating: 4612267/etc/
       creating: 4612267/etc/config/
      inflating: 4612267/etc/config/inventory  
      inflating: 4612267/etc/config/actions  
       creating: 4612267/etc/xml/
      inflating: 4612267/etc/xml/GenericActions.xml  
      inflating: 4612267/etc/xml/ShiphomeDirectoryStructure.xml  
      inflating: 4612267/README.txt      
    [oracle@DB packages]$ ls
    4612267  bbed  cx_Oracle-5.1.2  p4612267_10201_LINUX32bit_198days.zip  p4612267_10201_Linux-x86-64.zip
    [oracle@DB packages]$ cd 4612267/
    [oracle@DB 4612267]$ ls
    etc  files  README.txt
    [oracle@DB 4612267]$ $ORACLE_HOME/OPatch/opatch apply
    Invoking OPatch 10.2.0.1.0


    Oracle interim Patch Installer version 10.2.0.1.0
    Copyright (c) 2005, Oracle Corporation.  All rights reserved..




    Oracle Home       : /home/oracle/db/product/10.2.0/db_1
    Central Inventory : /home/oracle/oraInventory
       from           : /home/oracle/db/product/10.2.0/db_1/oraInst.loc
    OPatch version    : 10.2.0.1.0
    OUI version       : 10.2.0.1.0
    OUI location      : /home/oracle/db/product/10.2.0/db_1/oui
    Log file location : /home/oracle/db/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2017_Feb_16_10-52-33-CST_Thu.log


    ApplySession applying interim patch '4612267' to OH '/home/oracle/db/product/10.2.0/db_1'
    Invoking fuser to check for active processes.
    Invoking fuser on "/home/oracle/db/product/10.2.0/db_1/bin/oracle"


    OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.




    Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
    (Oracle Home = '/home/oracle/db/product/10.2.0/db_1')


    Is the local system ready for patching?


    Do you want to proceed? [y|n]
    y
    User Responded with: Y
    Backing up files and inventory (not for auto-rollback) for the Oracle Home
    Backing up files affected by the patch '4612267' for restore. This might take a while...
    Backing up files affected by the patch '4612267' for rollback. This might take a while...


    Patching component oracle.oracore.rsf, 10.2.0.1.0...
    Updating archive file "/home/oracle/db/product/10.2.0/db_1/lib/libcore10.a"  with "lib/libcore10.a/sltrg.o"


    Patching component oracle.rdbms, 10.2.0.1.0...
    Updating archive file "/home/oracle/db/product/10.2.0/db_1/lib/libcore10.a"  with "lib/libcore10.a/sltrg.o"
    Running make for target client_sharedlib
    Running make for target client_sharedlib
    Running make for target ioracle
    ApplySession adding interim patch '4612267' to inventory


    The local system has been patched and can be restarted.




    OPatch succeeded.
    [oracle@DB 4612267]$ 


    然后启动sqlplus,正常启动,问题解决。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12932950/viewspace-2133633/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/12932950/viewspace-2133633/

    展开全文
  • 计算机本身就是处理数据的机器,我们知道应用程序(程序数据)需要运行在内存中,靠CPU运算。然鹅,如果把数据存储到内存,一旦程序结束或者计算机断电,程序数据自动丢失,所以把数据放到硬盘中。在硬盘中把数据...

    本来要写MongoDB的文章,为了对他有个全面的了解(大局观),就从数据库开始说起吧

    文章概览


    数据库与DMBS


    数据库

    是什么

    按照数据结构组织、存储和管理数据的仓库

    为什么用

    计算机本身就是处理数据用的机器,我们知道应用程序(程序数据)需要运行在内存中,靠CPU运算。然鹅,如果把数据存储到内存,一旦程序结束或者计算机断电,程序数据自动丢失,所以把数据放到硬盘中。在硬盘中把数据组织起来,我们叫数据库

    DBMS(数据库管理系统)

    是什么

    一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,说白了,管理数据库的软件

    两者关系,见下图(图片来自百度百科)

    如果不那么严格分明,人们通常把数据库管理系统就叫作数据库


    RDBMS与NO SQL


    DBMS(数据库管理系统)主要分为两种

    • RDBMS
    • NO SQL

    两者区别与联系

      RDBMS NO SQL
    是什么 关系型数据库 非关系型.
    分布式
    不提供ACID
    数据库设计模式(Not Only SQL)
    为什么用 解决统一当时复杂化
    的数据模型如树型,星型等
    超大规模数据存储不适用RDBMS
    存储形式

    二维表

    描述实体,及实体间的关系

    没有预定义的模式

    键值存储

    列存储

    文档存储

    图形存储

    优点 严格一致性(ACID属性)
    结构简单

    高可扩展性
    分布式计算

    架构灵活

    缺点 不适合大规模数据
    复杂查询功能差
    没有标准化
    最终一致是不直观的程序

     


    NO SQL与MongoDB


    MongoDB

    • MongoDB是NO SQL中的一种,存储形式为文档,数据结构由键值对组成
    • MongoDB文档类似于JSON对象,在这个里面叫BSON
    • 字段值可以包含其他文档,数组及文档数组,见下图(来自菜鸟教程)

     

    展开全文
  • 1.3.1 联机事务处理和决策支持系统数据库 6 1.3.2 开发、测试和产品数据库 7 1.4 培训和认证 7 1.4.1 培训 7 1.4.2 认证 8 1.4.3 Oracle DBA的资源和组织 10 1.4.4 Oracle示例 11 1.4.5 Oracle...
  •  熊军(网名老熊),ITPUB论坛Oracle专题深入讨论版版主,现从事Oracle第三方技术支持工作,擅长Oracle数据库故障诊断处理和性能优化。个人网站:http://www.laoxiong.net.  杨廷琨(网名Yangtingkun),现任海虹...
  • Python Pandas处理亿级数据

    千次阅读 2016-01-24 14:21:17
    在数据分析领域,最热门的莫...这次拿到近亿条日志数据,千万级数据已经是关系型数据库的查询分析瓶颈,之前使用过Hadoop对大量文本进行分类,这次决定采用Python来处理数据: 硬件环境 CPU:3.5 GHz Intel C
  • 1、服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。 2、也可以这样讲,服务器指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库...
  • 在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,...
  • 问题 我的 MySQL CPU 高了,看了一下 processlist,实在有太多行了,我要不要...现在我们忘掉之前做了什么,就来处理这个 CPU 高的问题。 先 top -H 找到 CPU 高的线程,这里可以看到 CPU 高的线程一直是 17967 (.
  • 9.1 Plus archvielog选项简化备份 454 9.2 Nocatalog方式的备份方案制定 457 9.3 使用逻辑备份辅助物理备份 459 9.4 使用控制文件快照辅助恢复 462 9.5 归档逐步应用辅助数据迁移 467 9.6 _allow_...
  • 比如服务器CPU使用率过高,top命令之后怎么快速定位问题,又比如系统没有跑什么占用内存的程序,但是free一看,内存已经不多了,应该怎么处理,或者一大早起来,zabbix收到报警,某台数据库主机的iowait太高,...
  • 那为什么要选这个nosql型的数据库来当缓存小伙伴们有考虑过这个问题吗? 两个角度考虑,性能,并发。 性能 我们的Mysql中存放的数据是存放在磁盘上的,在对数据进行读取的时候会先把数据从磁盘读到内存中去,然后再...
  • 一个网站应用,两台虚拟机,一台web服务器,一台Oracle数据库服务器,最近经常出现应用中断现象,每次持续10到30分钟,不进行处理也能自行恢复正常,查看服务器状态发现是由于Oracle数据库CPU占用100%造成业务中断,...
  • 部署的项目是典型的JavaWeb项目+SSH框架+MySQL数据库 事情的经过是这样的。  首先我准备更新我部署在阿里云上面的项目,发现无论是我使用命令终端还是阿里云自带的远程终端都提示密码错误,检查服务器状态,发现...
  • 服务器指一个管理资源并为用户提供服务的计算机,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。相对于普通PC来说,服务器在稳定性、安全性、性能等方面都...
  • 年初去某公司面试时,对方的项目经理问如果数据库现在很慢,你该怎么办,我问慢的现象是什么数据库是被调用的不会莫名其妙就慢了,对方说什么都没有,就是慢了,你该怎么办?我说既然是这样,那就按老办法处理了:...
  • 什么影响了MySQL性能

    2018-04-02 18:34:49
    一、sql查询速度(后期补充) 1、效率低下的sql 二、服务器硬件 ...并发高的话可以看来采用多核心的CPU来提高数据库性能,但是要最新版的mysql,因为老版本的mysql对多核CPU的支持并不好,但是最...
  • 时间特性:系统处理客户请求的响应时间=呈现时间+系统响应时间性能特性:测试过程中,资源消耗情况(CPU、内存、磁盘)响应时间=网络传输时间+应用服务器处理时间+数据库处理时间N1 N2 N3 N4 A1 A3 A2并发用户数:...
  • 很多朋友应该都听过服务器、ip以及域名这些名词,但是它们到底是什么,能作什么用,可能一些朋友就不太清楚了! 一、服务器 服务器其实就像我们的家用电脑一样,也有主板、CPU、内存、硬盘、电源等,但是由于它们处理...
  • 1、尽可能降低CPU、GPU的功耗,比如:少定时器; 2、优化I/O操作(什么,你不懂什么是I/O操作?简单的来说就是对数据的处理,读写操作),比如:不要频繁的写入小数据,而是积累到一定的数量再写入;读写大量的...
  • CPU:Pentium 350以上,内存:128MB以上, 磁盘空间1G以上, 56K以上调制解调器/ADSL/Cable modem或其它宽带网络 --------------------------------------------------------------------------------------------------...
  • MySQL面试其他问题

    2021-01-22 17:35:07
    MySQL数据库cpu飙升到500%的话怎么处理?解释⼀下什么是池化设计思想。什么数据库连接池?为什么需要数据库连接池?MySQL自增主键完了怎么办?⼀条SQL语句执⾏得很慢的原因有哪些?MySQL创建表时可以设置多个主键...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 150
精华内容 60
关键字:

数据库处理用什么cpu