小编rtb*_*tbf的帖子

sql developer在启动时挂起 - 我该怎么办?

目前我无法运行它(SQL Developer 4.1),因为它在启动时依赖于"恢复编辑器".我想我之前已经通过杀死sql开发人员进程退出了它,因为它被挂起来将对象提取到Schema Browser这么久......也许我会清理一些临时文件但找不到任何文件.有任何想法吗?

oracle-sqldeveloper

10
推荐指数
4
解决办法
4万
查看次数

如何从请求中放入自定义范围/上下文(JobScoped - 自定义CDI范围)特定实例以使其可注入?

简而言之,我想在rest请求中放入自定义范围的Configuration类的特定实例.主要问题是自定义范围(JobScoped来自JBeret https://jberet.gitbooks.io/jberet-user-guide/content/custom_cdi_scopes/index.html)在工作开始后是合格的.我知道有可能在启动作业时添加属性,但我的Configuration类会聚集很多配置而且它非常复杂,所以将这些文件转换为Properties类会非常不舒服.

详情如下:

这是休息请求伪代码:

@Path("/job")
public class RunJob {

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("/start")
public String startJob(@FormDataParam("file") InputStream uploadedInputStream) {
    JobOperatorImpl jobOperator = (JobOperatorImpl) BatchRuntime.getJobOperator();

    Configuration config = new Configuration(uploadedInputStream);
    Properties properties = new Properties();
    jobOperator.start(job, properties);
}
Run Code Online (Sandbox Code Playgroud)

我想要实现的是在Job的上下文中注入一些配置文件,如下所示:

public class MyReader implements ItemReader {

@Inject
private Configuration configFile;
}
Run Code Online (Sandbox Code Playgroud)

配置类如下所示:

@JobScoped
public class Configuration {
 // some flags, methods etc
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了Instance,Provider但在我的情况下不知道如何使用它们.事实上,我认为使用它们是不可能的,因为作业是通过名称来识别的,这些名称是动态的并且在运行时已知.


同时我发现了类似的情况: 我可以创建一个请求范围的对象并从任何地方访问它,并避免在JAX-RS中作为参数传递它吗?

但后来发生缺少上下文的问题.Job启动时有JobScoped上下文.根据上面的解决方案,我注释了Configuration作为RequestScoped,然后我收到了:

org.jboss.weld.context.ContextNotActiveException:WELD-001303:org.jboss的org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:689)中的作用域类型javax.enterprise.context.RequestScoped没有活动的上下文位于org.jboss.weld.bean.ContextualInstance.getIfExists的org.jboss.weld.bean.ContextualInstanceStrategy $ CachingContextualInstanceStrategy.getIfExists(ContextualInstanceStrategy.java:165)中的.weld.bean.ContextualInstanceStrategy $ DefaultContextualInstanceStrategy.getIfExists(ContextualInstanceStrategy.java:90) (ContextualInstance.java:63)org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:83)org.jboss.weld.bean.proxy.ProxyMethodHandler.getInstance(ProxyMethodHandler.java:125)配置$ Proxy $ _ $$ _ WeldClientProxy.toString(未知来源)

jax-rs java-ee cdi java-batch jberet

7
推荐指数
1
解决办法
2586
查看次数

如何在BigQuery中解开?

不知道要调用哪些函数,但转置是我能想到的最接近的事情.

我有一个BigQuery中的表,配置如下: 在此输入图像描述

但我想查询一个像这样配置的表:

在此输入图像描述

创建此表的SQL代码是什么样的?

谢谢!

sql transpose unpivot google-bigquery

5
推荐指数
2
解决办法
3483
查看次数

如何更改BigQuery控制台(Web UI)中的默认选项,尤其是取消选中"使用旧版SQL"?

每当我撰写查询时,必须通过单击"显示选项"取消选中"使用旧版SQL"框.

这是浪费时间,因为在大多数情况下我使用标准SQL.

我知道有一些解决方法可以通过"设置查询前缀"(https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql),但始终键入#standardSQL也可能很烦人.

是否有任何第三方插件或其他选项来更改此默认行为?

google-bigquery

5
推荐指数
1
解决办法
2316
查看次数

为什么表统计信息被锁定?

我很困惑,因为没有为许多模式中的某些表收集统计信息.这些表已经在上一次夜间进行了分析,我认为这是由已启用的作业自动优化器统计作业完成的.我尝试通过接收手动收集统计数据时意识到这一点:

ora-20005 object statistics are locked
Run Code Online (Sandbox Code Playgroud)

在Tuning Advisor下令收集长时间运行查询的统计信息.

什么可以锁定这些统计数据 可以默认禁用吗?我认为没有人这样做,因为从长远来看,这种行为没有任何好处.


经过一些研究后,我找到了部分答案:https: //blogs.oracle.com/optimizer/entry/maintaining_statistics_on_large_partitioned_tables

我还发现通过每晚运行的分区程序发现统计信息被锁定为分区表,有一行:

dbms_stats.lock_table_stats(...)
Run Code Online (Sandbox Code Playgroud)

我不知道是好还是坏?我想前段时间它很好但是从Oracle 11g起它根本就没有意义.我将尝试介绍增量统计维护(docs)的方法,而不是禁用全球统计收集,我认为这是废弃的想法......

oracle11g database-performance

2
推荐指数
1
解决办法
8017
查看次数