⑴ sql优化,查询三个视图,查询100条数据居然要1分钟。求高手优化,在线等。。。。。
对表截取字符串用来关联另两个表的笛卡尔乘积的,可以对这个截取字符串的操作建立函数索引,使两者之间的关联用到索引
另外,那个1000万数据的表,可以看看是否可以分区,
在视图查询的时候,可以考虑对这个千万级的表进行并发查询,充分利用cpu
另外,此三表的统计信息在数据量更新较大的情况下也要注意更新统计信息
⑵ sql对100万条数据的查询和统计(主要是统计)效率提升
SELECT count(id)
FROM TBL_POS_SHOP s,
TBL_POS_POS p,
TBL_POS_CUSTOMER c,
TBL_POS_ORDER o,
TBL_POS_CARDINFO cd
WHERE o.POS_CATI = p.POS_CATI
and o.CUSTOMER_ID = c.ID
and o.SHOP_ID = s.ID
and o.CARDINFO_ID = cd.ID
⑶ sql写语句如何循环执行10000次
调用循环执行,例如:
declare@nint
set@n=0
begin
while@n<10000
set@n=@n+1
--这里运行您要执行的1万次操作
--例如您提问中的那些动作查询
end
⑷ sql server 执行循环插入100万条数据,当插入10万条左右时内存溢出了
CREATE TABLE #ta(A1 int,ID bigint NOT NULL IDENTITY(1,1));go
DECLARE @max AS INT, @rc AS INT;
SET @max = 1000000;
SET @rc = 1;
INSERT INTO #ta(A1) select 1
WHILE @rc < ceiling(log(@max) / log(2))
BEGIN
INSERT INTO #ta(A1) SELECT 1 FROM #ta;
SET @rc = @rc + 1 ;
END
select @max = @max - @@IDENTITY
INSERT INTO #ta(A1)
SELECT 1 FROM #ta where id <= @max
insert into book3
select 'a'+ltrim(str(id)),'b'+ltrim(str(id)),'c'+ltrim(str(id)),'d'+ltrim(str(id)),'e'+ltrim(str(id)),'2-12-2012'
from #ta