http://inthirties.com:90/thread-1202-1-1.html
v$sqltext
存储的是完整的SQL,SQL被分割
SQL> desc v$sqltext
Name Null? Type
----------------------------------------- -------- ----------------------------
ADDRESS RAW(4) ---------
HASH_VALUE NUMBER --------- 和 address 一起唯一标志一条sql
COMMAND_TYPE NUMBER
PIECE NUMBER ---------- 分片之后的顺序编号
SQL_TEXT VARCHAR2(64) -------------- 注意长度
v$sqlarea --------- 存储的SQL 和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息
SQL> desc v$sqlarea
Name Null? Type
----------------------------------------- -------- ----------------------------
SQL_TEXT VARCHAR2(1000)
SHARABL ......
http://inthirties.com:90/thread-1202-1-1.html
前面文章 ”v$sql,v$sqlarea,v$sqltext有什么区别“ 见 http://blog.csdn.net/inthirties/archive/2010/03/10/5364777.aspx
这里补充一下
补充:
1、查一下这些视图的定义你就能理解,它们的源都是一个。
SELECT view_definition from v$fixed_view_definition WHERE view_name='GV$SQL';
SELECT view_definition from v$fixed_view_definition WHERE view_name='GV$SQL_AREA';
2、实际上最模糊的是v$sql与v$sqlarea,区别与联系除biti说的还有:
a、v$sql_area相当于是按INST_ID, KGLNAOBJ, KGLHDPAR, KGLNAHSH, KGLNATIM,
GLOBTS0,GLOBT19, KGLOBTS1, KGLOBT20,DECODE(KGLOBT33, 1, 'Y',
'N'),KGLHDCLT这些列的自v$sql的group
by,也就是说v$sql的每一行表示的是每一个sql语句的一个versiion,而v$sqlarea存放的是相同语句不同version一个汇总。
b、 v$sql与v$sqlarea的源都是一个:X$KGLCURSOR
c、实际调优中建议使用v$sql,相对来说比v$sqlarea快,而且还不会产生share pool latch的争用。
3、因v$sql及v$sqlarea存放着统计信息在调优时使用居多,但其sql是不全的,如果想获得完整的s ......
SQL Server 2005报了这么个错:Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "Chinese_PRC_90_CI_AS" in the like operation.
后查证,这是由于两个做比较的列的排序方式不同,中文有很多种排序方式,对应如下:
中文(香港特别行政区)
Chinese_Hong_Kong_Stroke_90_CI_AS
中文(香港特别行政区)
Chinese_Hong_Kong_Stroke_90_CI_AS
中文(澳门特别行政区)
Chinese_PRC_90_CI_AS
中文(中国)
Chinese_PRC_CI_AS
中文(中国)
Chinese_PRC_Stroke_CI_AS
中文(新加坡)
Chinese_PRC_90_CI_AS
中文(台湾)
Chinese_Taiwan_Stroke_CI_AS
中文(台湾)
Chinese_Taiwan_Bopomofo_CI_AS
修正错误只需要在列名后面加上“COLLATE Chinese_PRC_CI_AS”就可以了,例如:
select * from table1, table2
where table1.column1 COLLATE Chinese_PRC_CI_AS=table2.column2 COLLATE Chinese_PRC_CI_AS ......
一、如何从select的查询结果中再次运算?
第一步:
粗查询。首先需要将第一层查询弄对,关系弄清楚。
select sum(quantity) total ,price_water,price_pollute from pay_water where time_pay >='2010-02-01 00:00:00.000' and time_pay <'2010-02-28 23:59:59.000'
group by price_water,price_pollute
第二步:
二次查询。在一次查询的基础上进行运算。
select total*price_water a ,total*price_pollute b from (
select sum(quantity) total ,price_water,price_pollute from pay_water where time_pay >='2010-02-01 00:00:00.000' and time_pay <'2010-02-28 23:59:59.000'
group by price_water,price_pollute
) as test
as test是必须有的,没有就会报错。
第三步:
压缩:
select sum(total*price_water) a ,sum(total*price_pollute) b from (
select sum(quantity) total ,price_water,price_pollute from pay_water where time_pay >='2010-02-01 00:00:00.000' and time_pay <'2010-02-28 23:59:59.000'
group by price_water,price_pollute
) as test
sum()函数可以将上下压缩,求出该列的总和。
二、grou ......
a b c d
980515 精頂企業有限公司 簡家豪 NULL
980514 全欣木業有限公司 NULL 123
980514 迅億科技股份有限公司 簡逢浚 NULL
980515 聖越國際企業有限公司 NULL   ......
1、Session有什么重大BUG,微软提出了什么方法加以解决?
答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据
库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
2.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
C# code
int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
{
int num=rnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
}
for(int i=0;i<100;i++)
intArr[i]=(int)myList[i];
Random r = new Random();
List<int> iNumberList = new List<int>();
int i = r.Next(1, 100);//第一个数不可能重复 所以先把它添加进去
iNumberList.Add(i);
while (iNumberList.Count < 100)
{
while (iNumberList.Contains(i))
{
i = r.Next(1, 101);
}
iNumberList.Add(i); ......