小编Pet*_*ang的帖子

为什么索引不用于此查询?

我有一个查询,当我认为它没有使用索引时,所以我出于好奇而转载它:

创建一个test_table包含1.000.000行(10个不同的值col,500个字节的数据some_data).

CREATE TABLE test_table AS (
  SELECT MOD(ROWNUM,10) col, LPAD('x', 500, 'x') some_data
  FROM dual
  CONNECT BY ROWNUM <= 1000000
);
Run Code Online (Sandbox Code Playgroud)

创建索引并收集表统计信息:

CREATE INDEX test_index ON test_table ( col );

EXEC dbms_stats.gather_table_stats( 'MY_SCHEMA', 'TEST_TABLE' );
Run Code Online (Sandbox Code Playgroud)

尝试获得不同的值colCOUNT:

EXPLAIN PLAN FOR
  SELECT col, COUNT(*)
  FROM test_table
  GROUP BY col;

---------------------------------------------------------------------------------
| Id  | Operation          | Name       | Rows  | Bytes | Cost (%CPU)| Time
---------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   | …
Run Code Online (Sandbox Code Playgroud)

sql oracle indexing performance

12
推荐指数
3
解决办法
2074
查看次数

MySQL使用127.0.0.1但不使用localhost?

我在php MySQL中有一个奇怪的问题:

php连接127.0.0.1但不连接localhost.

如何解决这个问题?

php mysql windows-7

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

不区分大小写的重复SQL

所以我有一个user表,其中user.username有许多重复项,如:

usernameUsernameuseRnAme
johnJohnjOhn

这是一个错误,这三个记录应该只有一个.

我正在尝试提出一个SQL查询,列出按创建日期排序的所有这些案例,所以理想情况下结果应该是这样的:

username jan01
useRnAme jan02
Username jan03
john     feb01 
John     feb02
jOhn     feb03
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激

mysql sql postgresql duplicate-data

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

如何将方法拦截器绑定到提供程序?

有没有办法将方法拦截器绑定到提供程序而不是实例?

例如,我使用下面的代码绑定拦截器如何将INTERCEPTOR绑定到提供程序,然后绑定到注释?

bindInterceptor(
    Matchers.any(), Matchers.annotatedWith(ANNOTATION.class), new INTERCEPTOR());
Run Code Online (Sandbox Code Playgroud)

java guice

12
推荐指数
1
解决办法
9199
查看次数

数字VS Varchar(2)主键

我现在对项目的这一点,我需要设计我的数据库(Oracle).通常,对于status和countries表,我不使用数字主键

STATUS (max 6)
AC --> Active
DE --> Deleted

COUNTRIES (total 30)
UK --> United Kingdom
IT --> Italy
GR --> Greece
Run Code Online (Sandbox Code Playgroud)

这些表是静态的,不是通过应用程序更新的,并且预计将来不会进行更改,因此在使用这些值作为外键的表中不会出现更新问题.

该应用程序的主表将使用状态和国家(不止一次,例如来源国,目的地国家),预计每年将增加600000行

所以我的问题是,当查询3个表的连接时,这些VARCHAR(2)键是否会对性能产生影响.第一个会明显慢于第二个吗?

SELECT m.*,
       s.status_name,
       c.country_name
  FROM main m, status s, countries c
 WHERE m.status_cd = s.status_cd
   AND m.country_cd = c.country_cd
   AND m.status_cd = 'AC'
   AND m.country_cd = 'UK'

SELECT m.*,
       s.status_name,
       c.country_name
  FROM main m, status s, countries c
 WHERE m.status_cd = s.status_cd
   AND m.country_cd = c.country_cd
   AND m.status_cd = 1
   AND m.country_cd = 2 …
Run Code Online (Sandbox Code Playgroud)

performance varchar numbers primary-key

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

在SQL SELECT语句中重用别名字段

我想实现这样的目标:

SELECT 
  (CASE WHEN ...) AS FieldA,
  FieldA + 20 AS FieldB
FROM Tbl
Run Code Online (Sandbox Code Playgroud)

假设通过"..."我已经替换了一个冗长而复杂的CASE语句,我不想在选择FieldB和使用别名时重复FieldA.

注意,这将返回多行,因此在我的情况下,语句之外的DECLARE/ 不好.SETSELECT

sql sql-server alias sql-server-2008

11
推荐指数
1
解决办法
5189
查看次数

返回NEWSEQUENTIALID()作为输出参数

想象一下这样的表:

CREATE TABLE [dbo].[test](
     [id] [uniqueidentifier] NULL,
     [name] [varchar](50) NULL
)

GO

ALTER TABLE [dbo].[test] ADD  CONSTRAINT [DF_test_id]  DEFAULT (newsequentialid()) FOR [id]
GO
Run Code Online (Sandbox Code Playgroud)

使用如下所示的INSERT存储过程:

CREATE PROCEDURE [Insert_test]
    @name as varchar(50),
    @id as uniqueidentifier OUTPUT
AS
BEGIN
    INSERT INTO test(
        name
    )
    VALUES(
        @name
    )
END
Run Code Online (Sandbox Code Playgroud)

获取刚刚插入的GUID并将其作为输出参数返回的最佳方法是什么?

sql sql-server

11
推荐指数
1
解决办法
3250
查看次数

Oracle Sequence以2而不是1开头

意外行为:

我遇到了11g的Oracle序列的奇怪行为(适用于10g):

CREATE SEQUENCE test_sequence START WITH 1;
CREATE TABLE test_table ( val INT );

INSERT INTO test_table VALUES ( test_sequence.NEXTVAL );
Run Code Online (Sandbox Code Playgroud)

即使序列以1开头,插入的第一个值为2:

SELECT * FROM test_table;

       VAL
----------
         2
Run Code Online (Sandbox Code Playgroud)

预期行为:

NEXTVAL没有插入的选择按预期工作:

CREATE SEQUENCE test_sequence_2 START WITH 1;

SELECT test_sequence_2.NEXTVAL FROM dual

   NEXTVAL
----------
         1
Run Code Online (Sandbox Code Playgroud)

题:

任何人都可以使用Oracle 11g重现这一点吗?这是一个已知的问题?

我正在使用
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production.

oracle sequence oracle11g

11
推荐指数
2
解决办法
7843
查看次数

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

JFileChooser - 多个文件过滤器?

我对Swing中的JFileChooser有疑问.我正在尝试在下拉框中获取多个文件扩展名,但不知道如何操作.

有方法

extFilter = FileNameExtensionFilter(description, extensions);
Run Code Online (Sandbox Code Playgroud)

然后我可以通过写作来使用

fileChooser.setFileFilter(extFilter);
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,这仅支持下拉列表中的一个选项.如何添加更多?

java jfilechooser file save

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