随笔分类 - SQL
摘要:Today I want to talk about executing SQL statements in X++ on both the currentAX database and external databases. This is something probably every AX developer will have to do at some point.You’ll want to do this for many reasons; to execute stored procedures, to improve performance, to get data fro
阅读全文
摘要:SQL复制表的几种方法:仅复制表结构:select * into newTableName from OldTableNamewhere 1 = 2SQL复制整张表 select * into NewTableName from OldTableName只复制列名而不要内容 select * int...
阅读全文
摘要:/*IfoundthisscriptbyKalenDelaneyonthissite.Ithinkthismayhelpyoursituation:Listing1:ProcedureThatFindstheHeadofaChainofBlockers*/USEmasterSETQUOTED_IDENTIFIEROFFGOIFEXISTS(SELECT*FROMsysobjectsWHEREname='sp_leadblocker'ANDtype='P')DROPPROCsp_leadblockerGOCREATEPROCEDUREsp_leadblockerA
阅读全文
摘要:As with every good DBA's toolbox, my blocking list query using sys.dm_exec_requests is evolving.I've added the following features:The query execution plan of the active request in the QueryPlan column to the right.Variable at the top which changes the relationship of the join between sys.dm_
阅读全文
摘要:实际生产环境里边,如果并发量不大,完全可以使用悲观锁定的方法,这种方法使用起来非常方便和简单。但是如果系统的并发非常大的话,悲观锁定会带来非常大的性能问题,所以就要选择乐观锁定的方法。悲观锁假定其他用户企图访问或者改变你正在访问、更改的对象的概率是很高的,因此在悲观锁的环境中,在你开始改变此对象之前就将该对象锁住,并且直到你提交了所作的更改之后才释放锁。悲观的缺陷是不论是页锁还是行锁,加锁的时间可能会很长,这样可能会长时间的限制其他用户的访问,也就是说悲观锁的并发访问性不好。乐观锁则认为其他用户企图改变你正在更改的对象的概率是很小的,因此乐观锁直到你准备提交所作的更改时才将对象锁住,当你读取.
阅读全文
摘要:悲观并发控制一个锁定系统,可以阻止用户以影响其他用户的方式修改数据。如果用户执行的操作导致应用了某个锁,只有这个锁的所有者释放该锁,其他用户才能执行与该锁冲突的操作。这种方法之所以称为悲观并发控制,是因为它主要用于数据争用激烈的环境中,以及发生并发冲突时用锁保护数据的成本低于回滚事务的成本的环境中。 乐观并发控制 在乐观并发控制中,用户读取数据时不锁定数据。当一个用户更新数据时,系统将进行检查,查看该用户读取数据后其他用户是否又更改了该数据。如果其他用户更新了数据,将产生一个错误。一般情况下,收到错误信息的用户将回滚事务并重新开始。这种方法之所以称为乐观并发控制,是由于它主要在以下环境中使用:
阅读全文
摘要:use DynamicsAx_PROgo------查询lock 循环次数 (倒序)exec usp_Find_Problemsgo-----杀死进程kill 141go-----查看当前数据库运行情况,可以看到进程被锁状况。sp_who2go---查看当前数据库死锁明细sp_lockgo--查看当前数据库进程死锁等待时间(倒序)Select a.sid,a.spid,a.waittime from sys.sysprocesses a where blocked <> 0order by a.waittime descgo---SELECT * FROM sys.dm_tran_
阅读全文
摘要:Along with the growth of the time using ERP system, the database was growing. Apparently caused the ERP application program execution performance, therefore the boss wants to know what space size of the tables in database. Demand what measures.. ?Such as delete earlier historical records, etc. So I
阅读全文
摘要:use AX2009DEVgo--lowercase to display the column nameselect 'EXEC sp_rename '''+sysobjects.name + '.' + syscolumns.name + ''',' + '''' + lower(syscolumns.name) + ''''from sysobjects join syscolumns on sysobjects.id = syscolumns.
阅读全文
摘要:Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。 1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select v
阅读全文
摘要:Update是T-sql中再简单不过的语句了,update table set column=expression[where condition],我们都会用到。但update的用法不仅于此,真正在开发的时候,灵活恰当地使用update可以达到事半功倍的效果。 假定有表Table1(a,b,c)和Table2(a,c),现在Table1中有些记录字段c为null,要根据字段a在Table2中查找,取出字段a相等的字段c的值来更新Table1。一种常规的思路,通过游标遍历Table1中字段c为null的所有记录,在循环体内查找Table2并进行更新,即用游标Cursor的形式。测试sql语句如
阅读全文
摘要:表变量存储在内存中,而临时表存储在tempdb中,会涉及到物理IO读写,那么我们是否可以由此得出结论,使用表变量要比使用临时表效率高呢?相信有一部分人会和我有同样的想法,使用表变量的效率高,真是如此吗?先从一次优化存储过程的经历说起。 存储过程涉及到两个表,一个是用户今日积分表@tableUserScore(数据源来自用户积分详情表中的今日数据),一个是用户积分统计表UserScoreSum,该存储过程逻辑就是统计@tableUserScore中用户不同原因的积分值,生成到表UserScoreSum中。数据量不算很大,@tableUserScore中大概40万条,但这个存储过程执行时间却有些惊
阅读全文
摘要:The following is a Hexadecimal turn to Decimal system custom functions.wrote by Jimmy on Mar 18th 2011use masterGOdrop function [dbo].[Jimmy_HexadecimalToDecimal]gocreate function [dbo].[Jimmy_HexadecimalToDecimal]( @hec varchar(50))returns intasbegin declare @dec int,@count int,@bigbit int,@strone
阅读全文
摘要:我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.(2) WHERE子句中的连接顺序.:ORACLE采用自下而上的顺序解析WHERE
阅读全文
摘要:The following SQL code using updated to the Dynamics AX 2009 Created datetime for SalesTable recordWrote by Jimmy Jan 21th 2011.Update system field value
阅读全文
摘要:1: sp_who 或 sp_who2 ,sp_lock 2: Select * from sysprocesses where blocked 0 3: 企业管理器->服务器->管理工具->活动->当前活动 然后把他kill掉。。。 4:SQL事件探查器,监控一下,看主要是那些处理引起的死锁.然后做相应的处理. 用事件探查器new一个trace,监视一下造成你sqlserver停顿的情况。。。 最好的办法还是检查一下引起锁的原因,一般是由你的代码引起的sp_whosp_who2sp_lockkill 进程ID(如51)
阅读全文
摘要:use Dynamics go --海关单位转库存单位 ------------------------------------------ --创建表及其相关字段 drop table Jimmy_UnitConversionTest go CREATE TABLE Jimmy_UnitConversionTest ( ItemId varchar(41) default('') ...
阅读全文
摘要:行列互转[代码]sql替换字符串 substring replace[代码]SQL查询一个表内相同纪录 having如果一个ID可以区分的话,可以这么写[代码]如果几个ID才能区分的话,可以这么写[代码]其他回答:数据表是zy_bho,想找出ZYH字段名相同的记录[代码]把多行SQL数据变成一条多列数据,即新增列[代码]表复制[代码]语法1:Insert INTO table(field1,field2,...) values(value1,value2,...)语法2:Insert into Table2(field1,field2,...) select value1,value2,...
阅读全文
摘要:create table test01(id int,name varchar(20),quarter int,profile int) insert into test01 values(1,'a',1,1000) insert into test01 values(1,'a',2,2000) insert into test01 values(1,'a',3,4000) insert in...
阅读全文

浙公网安备 33010602011771号