我有一个包含数百万条目的SQL表,我试图查询超过60天的条目数(Oracle 11.2.0.1.0).
对于这个实验,我使用了3个不同版本的select语句:(
成本值由TOAD for Oracle V. 9.7.2.5给出)
select count(*) from fman_file
where dateadded >= (select sysdate - 60 from dual)
费用:65
select count(*) from fman_file
where dateadded >= sysdate - 60
费用:1909年
select count(*) from fman_file
where dateadded >= sysdate - numtodsinterval(60,'day')
费用:1884年
select count(*) from fman_file where dateadded >= '10.10.2009'
费用:1823年
(2009 年10月10日只是一个例子日期!!!)
我没有为所有查询准确的时间值,但第一个确实是最快的.
所以我尝试了一些其他子选择的更多选择查询(如(从双精度中选择1000))并且它们(有时候是WAY)比具有常量值的其他子选择更快.甚至看起来这个"WHATEVER"(Bug/Feature)也在MySQL中发生.
那么有谁能告诉我为什么第一个查询(方式)比其他查询更快?
格尔茨
PS:这不是关于sydate!问题是为什么变化与(选择)比其他人更快?(稍微关注Select-Variation(1.)与Constant-Variation(4.))
我在这里遇到了一个问题,我感觉有一个简单而干净的解决方案,我还没有找到...我的Cake-PHP-Application看起来像这样:
Cake-PHP和我想要使用的外部文件安装在vendors-folder中.在供应商中,我有一个twitter bootstrap包,它有一个css-和一个js文件,我想包含在我的视图中,但它不可访问,因为那些文件不会保留在我的Cake的webroot-Folder中-PHP项目.现在我的问题是 - 如何在Cake-PHP项目中使这两个文件都可访问,而不将它们复制到webroot文件夹?使用符号链接对我来说看起来有点像肮脏的黑客...必须有一个干净的解决方案,因为否则使用Cake-PHP与Composer将没有任何意义.我的composer.json看起来像这样:
{
"name": "MyProject",
"version": "0.0.0",
"require": {
"php": ">=5.5.11",
"cakephp/cakephp": "2.6.3",
"composer/installers": "*",
"twbs/bootstrap": "3.3.4",
"components/jquery": "2.1.3"
},
"extra" : {
"installer-paths":{
"plugins/{$name}":["type:cakephp-plugin"],
"app/webroot/bootstrap":["twbs/bootstrap"]
}
},
"config": {
"vendor-dir": "vendors"
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句:composer忽略了bootstrap的给定installpath,因为包没有类型......
好的,这个与我的上一个非常相似,但我不明白......!
我正在尝试以下方法:
Insert into table b
(Select column_1 from table_a where ID = 1),
(Select column_2 from table_a where ID = 1),
0,
(Select column_3 from table_a where ID = 1);
Run Code Online (Sandbox Code Playgroud)
但我总是得到语法错误......!我认为我正在尝试做的事情是非常合乎逻辑的.
来自德国的格雷茨和你的答案!
Heyho,
我需要从日期A 00:00:00和日期B 00:00:00(在这种情况下日期A:16.07.2010日期B:20.07.2010)完成的操作中获取一些数据,所以我写了这个选择 - 声明:
Select avg(cnt),fext from (
Select
to_char(mytable.dateadded, 'DD.MM.YYYY') dateadded,
fext,
count(id) cnt
from mytable
where dateadded between
to_date('16.07.2010', 'dd,MM,YYYY') and
to_date('20.07.2010', 'dd,MM,YYYY')
group by
to_char(mytable.dateadded, 'DD.MM.YYYY'),
fext)
group by fext;
Run Code Online (Sandbox Code Playgroud)
原始(和工作)声明具有:
to_date('16.07.2010 00:00:00', 'dd,MM,YYYY HH24:Mi:SS') and
to_date('20.07.2010 00:00:00', 'dd,MM,YYYY HH24:Mi:SS')
Run Code Online (Sandbox Code Playgroud)
所以问题是:是吗?
to_date('16.07.2010', 'dd,MM,YYYY') and
to_date('20.07.2010', 'dd,MM,YYYY')
Run Code Online (Sandbox Code Playgroud)
已经将时间A和B设置为00:00:00?
格尔茨
我这里发生了一件奇怪的事情。我正在使用 WPF 和 VB.Net 使用 Visual Studio 2010 设计一个小程序,但由于某种原因,我所有的按钮和复选框(没有测试更多项目)不再可点击!即使我从 VS-Toolbox 中拖出一个相当新的!他们已将所有“IsFocousable”和“IsHitTestVisible”以及“IsEnabled”-Setting 设置为“True”。有人有解决这个问题的想法吗!?
问候!
哈士奇110
我有这个程序:
CREATE OR REPLACE PROCEDURE CONV1(
pDate IN VARCHAR2,
pYear OUT number,
pMonth OUT number,
pDay OUT number
)
AS
lDate DATE;
BEGIN
lDate := to_date(pDate, 'DD.MM.YYYY HH24:MI:SS');
pYear := to_number(to_char(lDate, 'YYYY'));
pMonth := to_number(to_char(lDate, 'MM'));
pDay := to_number(to_char(lDate, 'DD'));
END CONV1;
/
Run Code Online (Sandbox Code Playgroud)
如果我只想要其中一个出局,我该如何调用此程序?(喜欢Select FMAN_STAT_CONV1('16.07.2010', pDay) from dual;(这不是工作顺便说一句))
格尔茨!