由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - Will you against CLR UDF?
相关主题
Teradata account locking issue寻求一位Teradata+Oracle tutor[付费]
Recommended Books for oracle beginnerssize重要么?
Oracle 看来还有很长的路请教各位大侠呀.
请问Teradata database的工作机会多么?Non (MS SQL and Oracle) 快过来报个到
Senior Teradata DBA wanted有没有人可以介绍一下美国业界的情况
{Job} DBA IN SAN FRANCISCO数据库产品分类图
Help! Diff between Teradata SQL and Oracle SQL.在数据库公司做售后技术支持该怎么转行 ?
career choices - Data warehouse/BI vs OLTP有MS SQL的经验的人在那些城市容易找工作?
相关话题的讨论汇总
话题: udf话题: clr话题: dba话题: sql话题: oracle
进入Database版参与讨论
1 (共1页)
c**t
发帖数: 2744
1
If you're a sql server dba; user "needs" CLR UDF, what will you do?
a9
发帖数: 21638
2
为什么反对呢?

【在 c**t 的大作中提到】
: If you're a sql server dba; user "needs" CLR UDF, what will you do?
B*****g
发帖数: 34098
3
大牛DBA请绕行。
I am not a sql server dba and also not an oracle dba.
Most oracle DBAs will not allow developers to create java store procedure on
oracle as they say oracle pl/sql is faster.
Actually the reason is they do not know java, and they almost cannot do any
programming even in plsql.
基本原则,我不会的,也不许别人用。
当然也有会点乃特的sql server DBA,也有会家挖的oracle DBA,版上就有。

【在 c**t 的大作中提到】
: If you're a sql server dba; user "needs" CLR UDF, what will you do?
a9
发帖数: 21638
4
我原来有这么一个应用。
将数据入库,其中datetime一列用的是getdate(),插入数据后,要对原始数据+
datetime做数字签名,更新到另一列中去。
我就用.net做了个存储过程,把这些数据传进去做数字签名。
我实在不太信任用asp.net页面启动事务,插入数据,签名,更新,再提交事务这个过
程。
说到这儿问个问题,asp.net里的finally块,肯定会执行到吗?我以前的应用里,进入
try块后,如果遇到某些问题,finally块是不会执行的。出的问题原因不是try块中的异
常,最后我也没想出来是啥问题。

【在 a9 的大作中提到】
: 为什么反对呢?
j*******7
发帖数: 6300
5
CLR object run多了会使内存不被释放,只能restart sql service. Mission
critical的系统尽量别用。
u**d
发帖数: 211
6
oracle 说的是有道理的
根本问题是 udf 对于 optimizer 来说就是 black box
如何优化、有什么特性 optimizer 完全不知道
一个很简单的 udf 很可能完全 mess up query plan
到头来还是要用各种 hints 来强行指定 plan
pl/sql 无非就是把 udf 用 db 自己的 operator 描述一遍
每一步对于 db 都是透明的,也可以优化

on
any

【在 B*****g 的大作中提到】
: 大牛DBA请绕行。
: I am not a sql server dba and also not an oracle dba.
: Most oracle DBAs will not allow developers to create java store procedure on
: oracle as they say oracle pl/sql is faster.
: Actually the reason is they do not know java, and they almost cannot do any
: programming even in plsql.
: 基本原则,我不会的,也不许别人用。
: 当然也有会点乃特的sql server DBA,也有会家挖的oracle DBA,版上就有。

a9
发帖数: 21638
7
clr udf 无非就是.net,如何优化看你自己了。

procedure

【在 u**d 的大作中提到】
: oracle 说的是有道理的
: 根本问题是 udf 对于 optimizer 来说就是 black box
: 如何优化、有什么特性 optimizer 完全不知道
: 一个很简单的 udf 很可能完全 mess up query plan
: 到头来还是要用各种 hints 来强行指定 plan
: pl/sql 无非就是把 udf 用 db 自己的 operator 描述一遍
: 每一步对于 db 都是透明的,也可以优化
:
: on
: any

c*****t
发帖数: 1879
8
Just curious, in Oracle, does the database server and .NET
UDF run in the same process?
If not, there is a significant IPC cost.

【在 u**d 的大作中提到】
: oracle 说的是有道理的
: 根本问题是 udf 对于 optimizer 来说就是 black box
: 如何优化、有什么特性 optimizer 完全不知道
: 一个很简单的 udf 很可能完全 mess up query plan
: 到头来还是要用各种 hints 来强行指定 plan
: pl/sql 无非就是把 udf 用 db 自己的 operator 描述一遍
: 每一步对于 db 都是透明的,也可以优化
:
: on
: any

B*****g
发帖数: 34098
9
ding。其实要比较过才知道,不过结果肯定是case by case。不过DBA不take risk也是
对的,毕竟自己不懂,出了问题也解决不了。

【在 a9 的大作中提到】
: clr udf 无非就是.net,如何优化看你自己了。
:
: procedure

B*****g
发帖数: 34098
10
好久没见呀。这个贴子适合在group里讨论。
http://download.oracle.com/docs/cd/B19306_01/win.102/b14306/int

【在 c*****t 的大作中提到】
: Just curious, in Oracle, does the database server and .NET
: UDF run in the same process?
: If not, there is a significant IPC cost.

相关主题
{Job} DBA IN SAN FRANCISCO寻求一位Teradata+Oracle tutor[付费]
Help! Diff between Teradata SQL and Oracle SQL.size重要么?
career choices - Data warehouse/BI vs OLTP请教各位大侠呀.
进入Database版参与讨论
a9
发帖数: 21638
11
另外我不觉得有内存释放问题。我上面说的那个应用,跑了3年了,sql server从来没
重起过。

一定要找个能养我的PPMM */

【在 B*****g 的大作中提到】
: ding。其实要比较过才知道,不过结果肯定是case by case。不过DBA不take risk也是
: 对的,毕竟自己不懂,出了问题也解决不了。

B*****g
发帖数: 34098
12
我老板总是说"can you guaranty?"
我心想"关我屁事"
hehe

【在 a9 的大作中提到】
: 另外我不觉得有内存释放问题。我上面说的那个应用,跑了3年了,sql server从来没
: 重起过。
:
: 一定要找个能养我的PPMM */

a9
发帖数: 21638
13
像我这个就是没有dba的好处了,developer想怎么弄就怎么弄。

来没
一定要找个能养我的PPMM */

【在 B*****g 的大作中提到】
: 我老板总是说"can you guaranty?"
: 我心想"关我屁事"
: hehe

B*****g
发帖数: 34098
14
这是oracle和sqlserver的区别。咱公司的sql server/mysql俺也是想怎么弄就怎么弄。

【在 a9 的大作中提到】
: 像我这个就是没有dba的好处了,developer想怎么弄就怎么弄。
:
: 来没
: 一定要找个能养我的PPMM */

c**t
发帖数: 2744
15
if your app exit CLR in try block, finally will NOT be executed.

【在 a9 的大作中提到】
: 我原来有这么一个应用。
: 将数据入库,其中datetime一列用的是getdate(),插入数据后,要对原始数据+
: datetime做数字签名,更新到另一列中去。
: 我就用.net做了个存储过程,把这些数据传进去做数字签名。
: 我实在不太信任用asp.net页面启动事务,插入数据,签名,更新,再提交事务这个过
: 程。
: 说到这儿问个问题,asp.net里的finally块,肯定会执行到吗?我以前的应用里,进入
: try块后,如果遇到某些问题,finally块是不会执行的。出的问题原因不是try块中的异
: 常,最后我也没想出来是啥问题。

c**t
发帖数: 2744
16
我觉得主要的问题是 replication;在server挂掉的重建情况下,CLR UDF容易被漏掉

【在 a9 的大作中提到】
: 另外我不觉得有内存释放问题。我上面说的那个应用,跑了3年了,sql server从来没
: 重起过。
:
: 一定要找个能养我的PPMM */

c**t
发帖数: 2744
17
oracle you can have compiled store proc..

弄。

【在 B*****g 的大作中提到】
: 这是oracle和sqlserver的区别。咱公司的sql server/mysql俺也是想怎么弄就怎么弄。
a9
发帖数: 21638
18
呵呵,那就是人为原因了。

来没

【在 c**t 的大作中提到】
: 我觉得主要的问题是 replication;在server挂掉的重建情况下,CLR UDF容易被漏掉
a9
发帖数: 21638
19
没有人为的退出,可能是asp.net,连接断掉后,iis把它给exit了?

个过
进入
的异

【在 c**t 的大作中提到】
: if your app exit CLR in try block, finally will NOT be executed.
u**d
发帖数: 211
20
优化的核心在于 data-sensitive
动态选择(认为)最优的 execution plan 是 optimizer 的长处
特别是非常复杂的操作
从开发的角度,用 high level operators 不仅减少代码量
而且还减少 debug 的时间,不易出错
另外如果 query 本身就包含了 udf,比如
R JOIN T on R.a = f(T.b)
不知道 f 的特性,选择 hash join,还是 merge join,还是 nested loop
optimizer 就是一头雾水

【在 a9 的大作中提到】
: clr udf 无非就是.net,如何优化看你自己了。
:
: procedure

相关主题
Non (MS SQL and Oracle) 快过来报个到在数据库公司做售后技术支持该怎么转行 ?
有没有人可以介绍一下美国业界的情况有MS SQL的经验的人在那些城市容易找工作?
数据库产品分类图[转载] 求教数据库的query optimization 工作的面试
进入Database版参与讨论
B*****g
发帖数: 34098
21
optimizer 怎么根据f 的特性优化join?没听说过。有没有source?

【在 u**d 的大作中提到】
: 优化的核心在于 data-sensitive
: 动态选择(认为)最优的 execution plan 是 optimizer 的长处
: 特别是非常复杂的操作
: 从开发的角度,用 high level operators 不仅减少代码量
: 而且还减少 debug 的时间,不易出错
: 另外如果 query 本身就包含了 udf,比如
: R JOIN T on R.a = f(T.b)
: 不知道 f 的特性,选择 hash join,还是 merge join,还是 nested loop
: optimizer 就是一头雾水

c*****t
发帖数: 1879
22
其实 UDF 是可以 optimize 的。但是根本问题是执行 UDF 的 cost 太高。
1) Expression Index 可以直接储存 UDF(column) 的结果
2) Collect Statistics 也可以比较容易的改成执行 UDF 。
F(T.b) 很简单,因为只有一个 column 。复杂点的其实也可以,不过要有
点 restriction :
a) Columns 只能来自一个 table 。
b) 要不就是 constant 。
其中 a) 可以用 join index 绕过。
其实从另一方面来看,multi-column statistics 其实就是用一个内部的
F(...) 来将多个 column 的值变成一个值来搞 statistics 。
但是执行 UDF 的 cost 太高。依此得到 statistics 似乎有点得不偿失。
如果 UDF 在另外一个 process 里执行的话,不管是 C 写的还是 Java,.NET
都会比同一 process 里的 UDF 慢上 10-20 倍。但是同一 process 里面执行
的话,security 和 availability 方面都大大降低。
我知道一 Teradata 系统 collect statistics 是在 replicated system 上
执行 3.5 小时。然后每天再把 statistics 拷到 production server 上。如
果上面是弄 UDF 的话,这个估计难以按时完成。

【在 u**d 的大作中提到】
: 优化的核心在于 data-sensitive
: 动态选择(认为)最优的 execution plan 是 optimizer 的长处
: 特别是非常复杂的操作
: 从开发的角度,用 high level operators 不仅减少代码量
: 而且还减少 debug 的时间,不易出错
: 另外如果 query 本身就包含了 udf,比如
: R JOIN T on R.a = f(T.b)
: 不知道 f 的特性,选择 hash join,还是 merge join,还是 nested loop
: optimizer 就是一头雾水

u**d
发帖数: 211
23
我的意思是,如果 udf 是用 sql 在 db 内部定义的
udf 完全可以看成一个宏,query compilation 的时候替换掉
整个 query 就是一个 sql
比如 f(x) = x + 1
R JOIN T on R.a = f(T.b)
编译的时候就等价于 R JOIN T on R.a = T.b +1
optimizer 完全没有问题
但是如果 f 是用 .NET 写的 udf,f(T.b) 就是一个 black hole
但是 sql 自己提供的 operators 是有限的
很多 function 都无法实现
没办法,扩展性和效率很多时候都是矛盾的
和 sql server 和 teradata 的人都聊过,udf 都是一个很头疼的问题
udf 的调用效率问题,几乎也是因为 query engine 根本无法把 udf
抽象成 high level operators,所以只能按照 semantics,一遍一遍的调用
cost 很高

【在 B*****g 的大作中提到】
: optimizer 怎么根据f 的特性优化join?没听说过。有没有source?
u**d
发帖数: 211
24
看来是空间换时间,不过 maintenance cost 看起来挺高的

【在 c*****t 的大作中提到】
: 其实 UDF 是可以 optimize 的。但是根本问题是执行 UDF 的 cost 太高。
: 1) Expression Index 可以直接储存 UDF(column) 的结果
: 2) Collect Statistics 也可以比较容易的改成执行 UDF 。
: F(T.b) 很简单,因为只有一个 column 。复杂点的其实也可以,不过要有
: 点 restriction :
: a) Columns 只能来自一个 table 。
: b) 要不就是 constant 。
: 其中 a) 可以用 join index 绕过。
: 其实从另一方面来看,multi-column statistics 其实就是用一个内部的
: F(...) 来将多个 column 的值变成一个值来搞 statistics 。

1 (共1页)
进入Database版参与讨论
相关主题
有MS SQL的经验的人在那些城市容易找工作?Senior Teradata DBA wanted
[转载] 求教数据库的query optimization 工作的面试{Job} DBA IN SAN FRANCISCO
各位DBA老大,恳请指点一下Help! Diff between Teradata SQL and Oracle SQL.
请问最近几年比较火的数据库方面的topic是什么?career choices - Data warehouse/BI vs OLTP
Teradata account locking issue寻求一位Teradata+Oracle tutor[付费]
Recommended Books for oracle beginnerssize重要么?
Oracle 看来还有很长的路请教各位大侠呀.
请问Teradata database的工作机会多么?Non (MS SQL and Oracle) 快过来报个到
相关话题的讨论汇总
话题: udf话题: clr话题: dba话题: sql话题: oracle