随笔分类 - Db,SQL
SQL(为主),Oracle
摘要:原文:http://blog.etmt1.com/?p=3971. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03. 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。4.
阅读全文
摘要:进制转换基于一个原则: 求模倒到余。SQL 中没有数组,所以只能用 表变量来表示。如下:alter function [F_ToRadixString](@num int , @radix int)returns varchar(500)as begin if ( @radix > 36 ) return null ; if ( @radix < 0 ) return null ; declare @flag bit; if ( @num < 0 ) set @flag = 0 ; else set @flag = 1 ; set @num ...
阅读全文
摘要:原:http://blog.csdn.net/farawayplace613/article/details/6218979隔离层级决定(影响)用户(广义用户)并发读写时的行为及其结果。读是一般指Select语句,在默认情况下它使用共享锁。写是指使数据库内容发生改变的一切语句(Insert, Update, Delete等),它需要排他锁。通常我们不能控制写的时候是否加排他锁,但是我们可以指定读的时候是否加共享锁,当然通过是否加共享锁可以决定(影响)读的结果,有时也可以影响到写的结果。现有的隔离层级有:READ UNCOMMITTED, READ COMMITTED (default), RE
阅读全文
摘要:在定位Bug时,往往需要找出数据库实际执行的SQL,但 Sql server profiler 默认会监视所有SQL,以下方法可以快速定位。(Sql server profiler 选默认模板)1.添加标识,只监视指定连接的SQLweb.config 连接字符串添加 Application Name=MyOql 标识。它会出现在 Sql server profiler 的 Application Name 列中。同时在 Sql server profiler 的跟踪属性的 列筛选器 中添加: Application Name = MyOql2.精简SQL监视的结果集ADO.Net 执行的SQL
阅读全文
摘要:当需要把数据导入到 带有自增列的主子表的时候,稍显复杂。用以下SQL 实现( ResKey 是主表, ResValue 是子表)--- 有效的 CSM 资源。select * into #tfrom dbo.VTxtReswhere [Key] not in ( select [Key] from PM_VTxtRes )and [Key] not like '%.0' and [Key] not like 'MyOql.ProductTypeEnum.%'and [Key] != 'MyOql.EmptyEnum.选择类型'and [Value
阅读全文
摘要:场景对现在业务系统进行升级改造 ,数据库修改幅度很少。 表主键是按一定业务编码生成的。没有其它的唯一键。实现目的为了保证并发性,ID的使用触发器生成。实现的效果似自增键。sql端使用示例:Id为触发器生成IdinsertintoTab(val1,val2)values(1,2);--取最后插入的值selectdbo.GetTriggerValue('Tab');程序端配置(私有架构实现方法)app.config<EntityName="Tab",AutoIncreKey="Id"/>把它看成是自增键。使用如下:varmodel
阅读全文
摘要:1. 响应MS建议,使用 nvarchar(max) 替代 ntext ,nvarchar(max) 最大值与 ntext 相同,都是 2G。 参见:http://msdn.microsoft.com/zh-cn/library/ms143432.aspx2.varchar 与 nvarchar 还是有区别的,其中 “㛃” 不能用 varchar保存(见http://www.cnblogs.com/aaa6032/archive/2012/08/12/2632063.html) ,所以尽量用 nvarchar。3. 使用 nvarchar(max) , sp_executesql 也可以突破
阅读全文
摘要:环境需求:两个Menu表,结构一样,数据不同,需要把 PM_Menu 数据导入到 Menu表中, 其中 Menu 表结构为:CREATE TABLE [dbo].[Menu]( [ID] [int] IDENTITY(1,1) NOT NULL, [PID] [int] NULL, [Text] [...
阅读全文
摘要:要实现的功能是,字符串拼接。也是CLR开发自定义聚合最典型的应用。已有园有实现:http://www.cnblogs.com/blues_/archive/2010/03/19/1690047.htmlMSDN:http://msdn.microsoft.com/zh-cn/library/ms190678.aspx之前开发过SQL解析自定义大数字的应用,结构比较简单,要注意的地方:1. 添加引用,报没有数据库连接。 初次遇到,感觉奇怪 。 在项目属性中有 数据库选项卡,可以设置数据库连接字符串,VS把它保存到 .user 文件中。2.添加程序集:CREATE ASSEMBLY MyClr F
阅读全文
摘要:http://blog.csdn.net/jxqvip/article/details/6738551超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。解决办法1.在代码里面,把未关闭的连接关闭2.扩大共享池,方法如下:解决方法可以是...
阅读全文
摘要:转自http://blog.csdn.net/wangjianming45/article/details/7265949原文SQL 比较乱,整理了一下USE testGOSET NOCOUNT ON--create table for testingIF OBJECT_ID('dbo.tb_testMerge','U')IS NOT NULL DROP TABLE dbo.tb_testMerge;GO CREATE TABLE tb_testMerge( UserID INT IDENTITY(1,1)NOT NULL ,UserName VARCHAR(1
阅读全文
摘要:目前是PowerDesigner 的唯一可用功能了吧,想个简单办法实现之。1.把数据导入到 Excel这种方式比较灵活,可以方便的利用 OleDb接口,从SQLServer元数据表读取数据,写入到 Excel2.把Excel导入到Word为了定义出哪是表描述,哪是列描述,可以人为的添加标记.如 表标记前有两个空行.表标记后有一个空行. 利用 DDE 或剪贴板,把数据导入到 Word.3.利用宏,美化Word灵活地利用宏,对Word进行美化.对Word自动生成标题,大纲等.灵活,强大,相信不比PD效果差.(待实现.)
阅读全文
摘要:报表开发中,客户对样式提出了要求:1.工具栏上显示每页条数2.只导出Excel,不需要下拉菜单。3.报表上显示的图表,分页时,每页都要显示,但导出后,图表是一个,且都在最下面。另外的功能点:4.每页显示标头5.标题行和 奇偶行样式解决方案:1.工具栏上显示每页条数 搜索无果后(RportViewer 没提供类似的功能吧.),暴力解决.好像网上也有类似的方案. /// <summary> /// 给报表添加每页条数. Udi 2012年3月2日 /// </summary> /// <param name="Report"></par
阅读全文
摘要:前段时间开发报表,采用了 ReportViewer + RDLC , 开发整理如下.分页思路MS 的DataGrid ,GridView,和 ReportViewer 分页机制差不多,都需要绑定全部数据,MS控件自动处理分页。 只是ReportViewer 是按页面布局分页的,而不是按数据条数。绑定...
阅读全文
摘要:对数据库表字段名很多重复的时候,我们希望,把所有的 Name 设置为 名称 .先查引用最多的列:select c.name , count(1) as coufrom sys.columns as c join sys.tables as t on ( c.object_id = t.object_id)where t.type = 'U'group by c.name,t.typehaving count(1) > 1 order by count(1) desc 再用下列SQL作为模板, 按 Ctrl + T 执行select 'EXECUTE sp_adde
阅读全文
摘要:原: http://blog.csdn.net/claro/article/details/6401819
阅读全文
摘要:C# 建立数据库 CRL 项目 .Net 3.5public partial class MyClr{ [Microsoft.SqlServer.Server.SqlFunction] public static SqlBoolean CLRFBitContains(string MyB...
阅读全文
摘要:declare @t1 table ( id int , val varchar(20)) insert into @t1 select 1 , 'a' union select 2 , 'b' union select 3 , 'd' ;declare @t2 table ( id int , val varchar(20)) insert into @t2 select 2 , 'b' union select 3 , 'b' union select 4 , 'c' ;select * fro
阅读全文
摘要:ADO.Net 存储过程传递参数时, 参数值是 空字符串, 但是用 Sql server Profiler 监视时, 发现参数值变成了 空格。经查, 是因为 DbParameter.DbType = DbType.AnsiStringFixedLength 所致.改为 DbType.AnsiString , 即可.
阅读全文
摘要:原文:http://space.itpub.net/519536/viewspace-6234681.疑问出处1)创建测试表Tsec@ora10g> create table t (x number(38));Table created.2)查看表T的描述sec@ora10g> desc t;Name Null? Type------------------------------------- -------- --------------------------X NUMBER(38)3)得到user_tab_columns视图得到DATA_LENGTH字段大小sec@ora1
阅读全文