小编Vip*_*per的帖子

需要帮助调优sql-query

我需要一些帮助来提升这个SQL语句.执行时间约为125毫秒.
在我的程序运行期间,这个sql(更好:用于不同表的结构相同的sqls)
将被称为300.000次.

表中的平均行数约为10.000.000行,每天将添加新行(更新/插入)和时间戳.这个特定出口计划的有趣数据在过去的1-3天内.也许这对创建索引很有帮助.我需要的数据是给定id的当前有效行和获取更新的forerunner datarow(如果存在).

我们使用Oracle 11g数据库和Dot.Net Framework 3.5

提升的SQL语句:

select 
  ID_SOMETHING,    -- Number(12)
  ID_CONTRIBUTOR,  -- Char(4 Byte)
  DATE_VALID_FROM, -- DATE
  DATE_VALID_TO    -- DATE

from
  TBL_SOMETHING XID

where
  ID_SOMETHING = :ID_SOMETHING
  and ID_CONTRIBUTOR = :ID_CONTRIBUTOR
  and DATE_VALID_FROM <= :EXPORT_DATE
  and DATE_VALID_TO >= :EXPORT_DATE

order by
  DATE_VALID_FROM asc;
Run Code Online (Sandbox Code Playgroud)

在这里,我上传了此查询的当前解释计划.

我不是数据库专家,所以我不知道哪种索引类型最适合这个要求.我已经看到可以应用许多不同的可能索引类型.也许Oracle Optimizer Hints也很有帮助.

有没有人有一个好主意调整这个SQL或可以指向我正确的方向?

sql oracle performance

4
推荐指数
1
解决办法
276
查看次数

OracleParameter和DBNull.Value

我们在Oracle数据库中有一个表,其中包含一列类型为Char(3 Byte)的列。
现在,我们使用参数化的sql来选择带有DBNull.Value的某些行,但它行不通:

OracleCommand command = null;  
OracleDataReader dataReader = null;  

string sql = "select * from TEST_TABLE where COLUMN_1 = :COLUMN_1";  

try  
{  
    OracleConnection connection = (OracleConnection) dbConnection;  
    command = new OracleCommand( sql, connection );  

    OracleParameter param_1 = new OracleParameter( "COLUMN_1", OracleDbType.Char );  
    command.Parameters.Add( param_1 );

    param_1.Value = DbNull.Value;

    dataReader = command.ExecuteReader( );

    int recordCount = 0;
    while( dataReader.Read( ) == true )
    {
        recordCount++;
    }

    Console.WriteLine( "Count = " + recordCount ); // is 0
}
[...]  
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我们肯定有一些包含DBNull的行, …

c# sql oracle

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

if-else快捷方式惊喜

我很惊讶第三种解决方案不起作用(Compiler说:) ; is missing.

bool isFoobar = true;

isFoobar == true ? isFoobar = false : isFoobar = true; // [1] works
( isFoobar ? isFoobar = false : isFoobar = true ); // [2] works
isFoobar ? isFoobar = false : isFoobar = true; // [3] failed
Run Code Online (Sandbox Code Playgroud)

嗯,为什么最后一个不起作用?

c# syntax

0
推荐指数
2
解决办法
1920
查看次数

标签 统计

c# ×2

oracle ×2

sql ×2

performance ×1

syntax ×1