我们需要做一些计算繁重的工作来连接Oracle数据库.到目前为止,我们已经在PL/SQL中进行了数值计算,并且很大程度上缺乏性能.
现在我们正在实施一个多级库存模型(https://www.researchgate.net/publication/222409130_Evaluation_of_time-varying_availability_in_multi-echelon_spare_parts_systems_with_passivation)由于问题的严重性,我更关注性能.
我用三种语言实现了部分算法:Fortran(90-2008符合gfortran),Excel中的VBA和PL/SQL,并围绕它进行了一百万次调用测试循环.即使使用binary_double数据类型和本机编译PLSQL_CODE_TYPE=NATIVE(两者都会导致改进),下面的测试代码仍然需要37秒才能运行(Oracle XE 11.2).相比之下,VBA在同一硬件上占用16s和Fortran 1.6s.
虽然要求性能接近Fortran数字可能太过分了(虽然这显然是非常需要的)但我很惊讶即使是不起眼的VBA也会执行PL/SQL.
所以我的问题有两个部分:
此外,虽然我不是直接批评我的源代码本身,但如果有人能发现任何我可以合并的明显优化,我将不胜感激.
该函数timeebo是测试函数,我select timeebo from dual;在SQL Developer中使用一个简单的函数调用它.
create or replace FUNCTION gammln(
x IN binary_double)
RETURN binary_double
IS
--Lanczos' approximation to the Log Gamma function
gammln binary_double;
ser binary_double;
tmp binary_double;
BEGIN
tmp := x + 5.5;
tmp :=(x + 0.5) * Ln(tmp) - tmp;
ser := 1.000000000190015;
ser := ser + 76.18009172947146 /(x + 1.0) ;
ser := …Run Code Online (Sandbox Code Playgroud) 我们需要在Oracle OLAP 10g维度中表示一些组织数据,最好使用Warehouse Builder填充.
组织层次结构被列为父子对,并且是不规则的(不平衡的)和跳过级的(非覆盖的).这将适用于基于价值的层次结构,但我们的客户宁愿使用ROLAP而不是MOLAP,即避免使用分析工作空间,它排除了使用基于值的层次结构.
是否有一种直接的方法来使用父子对数据填充基于级别的层次结构,如果是这样,如何才能完成?
指向教程的指针将受到欢迎,特别是如果他们使用Warehouse Builder.
我试图通过Python工作从Osvaldo Martin的贝叶斯分析中获取PyMC3示例.在Windows 10上,使用matplotlib的以下代码工作正常(即显示图表):
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
def posterior_grid(grid_points=100, heads=6, tosses=9):
"""
A grid implementation for the coin-flip problem
"""
grid = np.linspace(0, 1, grid_points)
prior = 0.5 - abs(grid - 0.5)
likelihood = stats.binom.pmf(heads, tosses, grid)
unstd_posterior = likelihood * prior
posterior = unstd_posterior / unstd_posterior.sum()
return grid, posterior
if __name__ == "__main__":
points = 100
h, n = 1, 4
grid, posterior = posterior_grid(points, h, n) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下VBA代码段打开Excel文件作为数据源:
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & path & "\" & VFile & ";" & _
"Extended Properties=""Excel 8.0; HDR=No; IMEX=1;"""
.Open
End With
Run Code Online (Sandbox Code Playgroud)
当path变量属于类型时,这可以按预期工作C:\Folder.但是,如果我想在与当前文件相同的文件夹中引用excel文件,并使用
path = ThisWorkbook.path
Run Code Online (Sandbox Code Playgroud)
当前工作簿位于SharePoint上存储的文件夹中,path然后将包含表单的某些内容
https://sp.foobar.com/folder
尝试使用此路径进行连接会导致Method 'Open' failed错误.将路径黑客攻入WebDAV路径会告诉我该文件已锁定或我无权读取该文件.
有人可以帮忙吗?
当我手动设置path为Drive:\Folder表单时,一切都很好,但ThisWorkbook.path如果文件存储在SharePoint上,我无法使用或类似地自动生成此路径,并且我希望解决方案在任何地方工作的意义上都是"可移植的"在驱动器上,只要所有相关文件都在同一个文件夹中.
在Excel 2016 Get&Transform(“高级查询”)中,具有包含斜杠字符的字段(列)名称似乎完全有效。但是,当我尝试引用本专栏文章时,我找不到任何方法可以使斜杠转义以使引用工作正常。我怎样才能做到这一点?
具体来说,接受以下代码:
Table.AddColumn(#"Capitalize", "ABC Table", each Table.FromColumns({Text.Split([ABC], ",")}))
Run Code Online (Sandbox Code Playgroud)
...但是以下不是:
Table.AddColumn(#"Capitalize", "ABC Table", each Table.FromColumns({Text.Split([ABC / DEF], ",")}))
Run Code Online (Sandbox Code Playgroud)
...大概是因为中的斜线[ABC / DEF]。
我怎样才能逃脱这个斜线?
oracle ×2
adodb ×1
excel ×1
hierarchy ×1
matplotlib ×1
numerical ×1
olap ×1
optimization ×1
parent-child ×1
performance ×1
plsql ×1
powerquery ×1
pymc3 ×1
python ×1
sharepoint ×1