由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - T-SQL string split效率
相关主题
Can I use array in SQL stored procedure?TSQL->PL SQL
SQL的一个愚蠢小问题【隆重推出】北美华人SQL Server User Group (CINASSUG)
为啥Oracle stored procedure 里面不建议用 temporary table?SQL Developer 和 .Net Developer
Does T-SQL have bit shift function?SQL中怎样用定制列排序?
怎么样提高SQL SERVER的编程水平?T-SQL Developer position open
SQL Server DBA vs BI & DW新手学数据库:到底是从Oracle 还是 SQL server 学起,还是
有没有TSQL和 PL/SQl 或者Teradata sql都熟悉的高手, 麻烦看一下200
我们公司招人TSQL DeveloperSQL101讲座, 适合初学者
相关话题的讨论汇总
话题: sql话题: split话题: temp话题: splitter话题: 效率
进入Database版参与讨论
1 (共1页)
y*****n
发帖数: 11251
1
最近在改一个不知多少年前的query,用了一个IN (,)。结果遇上一个几千条的list,
直接把sql server干掉了。决定改成temp table做inner join。那个list是作为参数传
过来的,中间
用,分开。如果用charindex一个一个断开做insert,效率怎么样啊? 会不会做split
的时候也把sql server搞得忙死?
y****w
发帖数: 3747
2
一个用charindex循环sql就拆好了,记得一定给临时表加个索引。效率肯定没问题。

split

【在 y*****n 的大作中提到】
: 最近在改一个不知多少年前的query,用了一个IN (,)。结果遇上一个几千条的list,
: 直接把sql server干掉了。决定改成temp table做inner join。那个list是作为参数传
: 过来的,中间
: 用,分开。如果用charindex一个一个断开做insert,效率怎么样啊? 会不会做split
: 的时候也把sql server搞得忙死?

y*****n
发帖数: 11251
3
temp table就一个列也要加index?还是temp table超过一定大小再加?

【在 y****w 的大作中提到】
: 一个用charindex循环sql就拆好了,记得一定给临时表加个索引。效率肯定没问题。
:
: split

y****w
发帖数: 3747
4
把丫想象成array,你一定想要个index的。给temp加index没太大
好处的情况会有,但能把情况搞糟糕的几乎没有。

【在 y*****n 的大作中提到】
: temp table就一个列也要加index?还是temp table超过一定大小再加?
i****a
发帖数: 36252
5
pre-split before inserting into temp table 會不會好點

【在 y*****n 的大作中提到】
: temp table就一个列也要加index?还是temp table超过一定大小再加?
B*****g
发帖数: 34098
6
咱公司的java developer最喜欢干这个

【在 y****w 的大作中提到】
: 把丫想象成array,你一定想要个index的。给temp加index没太大
: 好处的情况会有,但能把情况搞糟糕的几乎没有。

y*****n
发帖数: 11251
7
把split做成一个function了,return table variable,然后再insert into temp

【在 i****a 的大作中提到】
: pre-split before inserting into temp table 會不會好點
g***l
发帖数: 18555
8
FUNCTION是ROW LEVEL的,比较慢的
B*****g
发帖数: 34098
9
没有control吗?oracle应该可以control

【在 g***l 的大作中提到】
: FUNCTION是ROW LEVEL的,比较慢的
y****w
发帖数: 3747
10
他这个不是针对一个表的字串,每次用都是一次性的.
他关心的是返回临时表的效率.

【在 g***l 的大作中提到】
: FUNCTION是ROW LEVEL的,比较慢的
相关主题
SQL Server DBA vs BI & DWTSQL->PL SQL
有没有TSQL和 PL/SQl 或者Teradata sql都熟悉的高手, 麻烦看一下【隆重推出】北美华人SQL Server User Group (CINASSUG)
我们公司招人TSQL DeveloperSQL Developer 和 .Net Developer
进入Database版参与讨论
y*****n
发帖数: 11251
11
对。临时表最多时候可能有几千条,要和一个表join,那个表几百万条吧。不过同时还
有别的进程做CRUD。

【在 y****w 的大作中提到】
: 他这个不是针对一个表的字串,每次用都是一次性的.
: 他关心的是返回临时表的效率.

u*********e
发帖数: 9616
12
that's what we did here.

【在 y*****n 的大作中提到】
: 把split做成一个function了,return table variable,然后再insert into temp
gy
发帖数: 620
13
This is so far the most efficient splitter from Jeff Moden:
http://www.sqlservercentral.com/articles/Tally+Table/72993/
gy
发帖数: 620
14
No need "再insert into temp" if you use Jeff's splitter function -- it is
TVF.

【在 y*****n 的大作中提到】
: 把split做成一个function了,return table variable,然后再insert into temp
gy
发帖数: 620
15
Paul White has a CLR splitter outperform TSQL splitter:
http://www.sqlservercentral.com/Forums/Topic1101315-203-14.aspx
y****w
发帖数: 3747
16
lz这个split只处理几千条,clr function快100倍也省不了1s的。 后面这几千条和那
个大表join才是关键。 索引,索引,还是索引。

【在 gy 的大作中提到】
: Paul White has a CLR splitter outperform TSQL splitter:
: http://www.sqlservercentral.com/Forums/Topic1101315-203-14.aspx

y*****n
发帖数: 11251
17
今天刚有反馈回来,说现在要将近10万条了。。不知道他们在搞什么。

【在 y****w 的大作中提到】
: lz这个split只处理几千条,clr function快100倍也省不了1s的。 后面这几千条和那
: 个大表join才是关键。 索引,索引,还是索引。

B*****g
发帖数: 34098
18
1 month?

【在 y*****n 的大作中提到】
: 今天刚有反馈回来,说现在要将近10万条了。。不知道他们在搞什么。
g***l
发帖数: 18555
19
支持这个,先准备好了,一次性插入避免其它的操作

【在 i****a 的大作中提到】
: pre-split before inserting into temp table 會不會好點
y*****n
发帖数: 11251
20
是啊。大概是sku的分组。每次都建新的,拒绝reuse

【在 B*****g 的大作中提到】
: 1 month?
1 (共1页)
进入Database版参与讨论
相关主题
SQL101讲座, 适合初学者怎么样提高SQL SERVER的编程水平?
高级MS SQL/BI实战项目,模拟真实工作场景SQL Server DBA vs BI & DW
Looking for a mid-level SQL Server Developer, NJ有没有TSQL和 PL/SQl 或者Teradata sql都熟悉的高手, 麻烦看一下
SQL server Express 怎么加 link table我们公司招人TSQL Developer
Can I use array in SQL stored procedure?TSQL->PL SQL
SQL的一个愚蠢小问题【隆重推出】北美华人SQL Server User Group (CINASSUG)
为啥Oracle stored procedure 里面不建议用 temporary table?SQL Developer 和 .Net Developer
Does T-SQL have bit shift function?SQL中怎样用定制列排序?
相关话题的讨论汇总
话题: sql话题: split话题: temp话题: splitter话题: 效率