案例ORA-00600: internal error code, arguments: [qkaffsindex3], [], [], [], []
执行更新统计信息语句:exec dbms_stats.gather_schema_stats(ownname=>'LIVE_KS',degree=>2,cascade=>true,options=>'GATHER AUTO',estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,method_opt
SQL Server新老版本CE区别
对比CE7和2014 CE12的区别: 1.表连接中连接列估算方式 老CE对所有参与连接列的统计信息step进行逐个估算。新CE只对于最大和最小step统计信息进行收集估算,在连接列的值分布不均匀的时候,老CE拥有更准确的估算。 2.对于where语句多条件估算 老CE认为各个条件独立计算,不存在相关性,估算结果以选择性最高的条件单独为标准,新CE估算方式是条件1选择性sqrt(条件2选择
SQL Server优化标量函数改写内联表值函数
问题SQL:SELECT TOP 1001 ha.HuntApplicationID , ha.PartyNumber , &nb
SQL Server 2016升级迁移过程中性能问题解决案例
日常运行的批量更新作业,平日是5分钟之内结束,今天出现超过30分钟没结束的情况,实际运行3个小时以上,应用程序超时报错。数据库版本:SQL Server 2016企业版问题SQL:declare @batch integer, @min  
Oracle dba角色和sysdba的区别
如果用户需要远程sysdba的方式登陆,需要grant sysdba权限,登陆后以sys用户执行命令,需要验证密码文件。密码文件如果是从12c之前的老版本同步过来,需要重建12c格式的密码文件。dba角色默认授予用户,登陆后不以sys用户执行命令,不需要密码文件登陆。
SQL Server阻塞blocking案例分析
今天在性能测试过程中发现大量阻塞报警,检查whoisactive(https://github.com/amachanic/sp_whoisactive/)数据发现,阻塞blocking头部session当前执行的语句如下:<?query --(@p0 int,@p1 datetime,@p2 bigint,@p3 bigint,@p4 bigint)INSERT INTO [License
SQL Server Availability Group Failover 测试
兼容性测试:测试脚本:环境:windows failover cluster 主库执行脚本:USE [master]GOALTER AVAILABILITY GROUP [test_AG]MODIFY REPLICA ON N'host1' WITH (FAILOVER_MODE = AUTOMATIC)GO报错:Msg 35215, Level 16, State 17
SQL Server database mail问题诊断一例
产品环境sql server database的mail发不出邮件,影响客户的业务,在数据库中进行诊断诊断sql:EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DB Messaging', @recipients = 'jamesz@gmail.com', @body = 'James_test_2019'
SQL Server如何配置cdc进行ETL
企业核心业务系统oltp的数据需要通过ETL同步到数据仓库,原始的ETL流程通过定制化从SQL Server中进行数据抽取,经过生产环境的监控,发现ETL过程的query会对生产系统造成额外负载。于是制定了通过cdc进行增量数据同步的方案:方案选型中比对了SQL server的trigger,CT,CDC, temporary table各种方式,选型对比如下:TriggerCTCDCTempor
记一次分区表update调优过程
原始SQL:CREATE OR REPLACE PROCEDURE sp_upd_suppressed_emails ( A_LIMIT_BULK IN PLS_INTEGER DEFAULT 2000, A_COMMIT_AFTER IN PL
记一次SQL Server删除SQL调优
今天测试反应问题,性能测试环境一个脚本执行了大约3个小时没有出结果,期间其他dba已经建立了一些索引但是没有效果。语句:DELETE T from License T WHERE exists (select 1 from #i_RollbackTrans r where r.LicenseID= T.LicenseID)表License数据量4千万表#i_Ro
ASYNC_NETWORK_IO网络等待和优化过程
测试反应测试数据库整体出现hang的情况,检查对应的等待事件,发现大量的resource_semaphore等待事件,查看内存占用情况:SELECT * FROM sys.dm_exec_query_memory_grants 发现会话189占用大量的granted_memory, 检查189对应的session,执行了超过24小时未结束
SQL Server DACPAC数据库部署错误
DACPAC使用sqlpackage.exe进行部署,部署时候报错:EXEC : error SQL72035: [dbo].[table] is under change data capture control and cannot be modified 该错误由于cdc的启用,在部署过程中添加以下参数解决/p:DoNotAlterChangeDataCaptureObjects=
SQL Server统计数据库中表大小
use testdbgoif object_id('tempdb.dbo.#tablespaceinfo','U') is not null drop table #tablespaceinfocreate table #tablespaceinfo ( nameinfo varchar(555), &n
SQL Server如何导出db所有用户权限创建语句
use dbgoDECLARE @Database varchar(255),@loginName varchar(255),@roleName varchar(255),@sql nvarchar(max);SET @sql=N'';DECLARE curLogin CURSOR LOCAL forselect db_name() as dbname,dp.name a
迁移oracle用户密码
如何迁移oracle user的密码到新的环境,以下列出了方法:select name,spare4||';'||password pwd from sys.user$ where name = 'user';oracle 根据基表sys.users$的列spare4和password生成密码的hash和salt. 如果更新需要加values关键字:alt
SQL Server一次SQL调优案例
环境:Microsoft SQL Server 2016 (SP2-CU3)企业版问题SQL:select RowNumber = ROW_NUMBER() OVER ( -- This ordering is from the various Fu
主流关系数据库锁实现的区别
SQL Server实现的锁主要是由通过锁表来实现,在内存中开辟专门区域对于不同级别的对象(行、键-块-对象、索引-库)相应的锁记录,事务层和存储层完全分离,并且锁占用开销较大,当锁占用较多资源的时候,会进行锁升级降低并发性。MySQL对与锁的实现主要是行键的实现,采用在页面头部记录位图的方式,这样做在检索行锁记录的时候需要到页面头部获取数据,页面头部因为用位图信息记录行锁,所以相比SQL Ser