GVKun编程网logo

如何清除Oracle中的所有缓存项目(如何清除oracle中的所有缓存项目数据)

6

关于如何清除Oracle中的所有缓存项目和如何清除oracle中的所有缓存项目数据的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于database–如何更新oracle中列的所有行,其起始

关于如何清除Oracle中的所有缓存项目如何清除oracle中的所有缓存项目数据的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于database – 如何更新oracle中列的所有行,其起始值为500,并在oracle中递增、oracle – 如何修剪string类型的所有表中所有行的所有列?、oracle – 如何清除ODP.NET连接池中的连接错误?、oracle10g – 如何删除Oracle 10中的用户,包括它的所有表空间和数据文件等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

如何清除Oracle中的所有缓存项目(如何清除oracle中的所有缓存项目数据)

如何清除Oracle中的所有缓存项目(如何清除oracle中的所有缓存项目数据)

我正在调整Oracle数据库上的SQL查询。我想确保在运行每个查询之前清除所有缓存的项目,以防止误导性能结果。我通过运行以下命令清除共享池(摆脱缓存的SQL
/解释计划)和缓冲区缓存(摆脱缓存的数据):

alter system flush buffer_cache;alter system flush shared_pool;

我还有更多要做的事情吗?

谢谢!

答案1

小编典典

刷新共享池应该可以做到这一点,但是Tom Kyte在下面列出了一些原因,在某些情况下您可能无法获得预期的结果:

http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::::P11_QUESTION_ID:6349391411093

database – 如何更新oracle中列的所有行,其起始值为500,并在oracle中递增

database – 如何更新oracle中列的所有行,其起始值为500,并在oracle中递增

我在oracle中有一个表,其中所有列的行都必须使用起始值500更新并递增1.

我试图在网上找到类似的东西但却无法获得任何有用的东西. oracle和PL / sql不是我的专长.任何帮助,将不胜感激.

解决方法

我不会使用PL / sql,因为它可以在纯sql中完成.

您可以使用以500开头并以1递增的SEQUENCE.

例如,

建立

sql> DROP SEQUENCE s ;

Sequence dropped.

sql>
sql> CREATE SEQUENCE s START WITH 500 INCREMENT BY 1;

Sequence created.

sql>
sql> DROP TABLE t PURGE;

Table dropped.

sql>
sql> CREATE TABLE t AS SELECT LEVEL id FROM dual CONNECT BY LEVEL < =20;

Table created.

sql>
sql> SELECT * FROM t;

        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11

        ID
----------
        12
        13
        14
        15
        16
        17
        18
        19
        20

20 rows selected.

sql>

现在,让我们用序列更新表.

sql> UPDATE t SET ID = s.nextval;

20 rows updated.

sql>
sql> SELECT * FROM t;

        ID
----------
       500
       501
       502
       503
       504
       505
       506
       507
       508
       509
       510

        ID
----------
       511
       512
       513
       514
       515
       516
       517
       518
       519

20 rows selected.

sql>

因此,您已更新所有行,序列以500开头并递增1.

oracle – 如何修剪string类型的所有表中所有行的所有列?

oracle – 如何修剪string类型的所有表中所有行的所有列?

在Oracle 10g中,有没有办法在PL / sql中执行以下操作?

for each table in database
  for each row in table
    for each column in row
      if column is of type ''varchar2''
        column = trim(column)

谢谢!

解决方法

当然,进行大规模动态更新可能会带来危险和耗时.但是这里是你如何生成你想要的命令.这是针对单个模式的,只是构建命令并输出它们.您可以将它们复制到脚本中并在运行之前查看它们.或者,您可以将dbms_output.put_line(…)更改为EXECUTE IMMEDIATE …以使此脚本在生成时执行所有语句.

SET SERVEROUTPUT ON

BEGIN
  FOR c IN
    (SELECT t.table_name,c.column_name
       FROM user_tables t,user_tab_columns c
       WHERE c.table_name = t.table_name
         AND data_type=''VARCHAR2'')
  LOOP

    dbms_output.put_line(
                      ''UPDATE ''||c.table_name||
                      '' SET ''||c.column_name||'' = TRIM(''||c.column_name||'') WHERE ''||
                      c.column_name||'' <> TRIM(''||c.column_name||'') OR (''||
                      c.column_name||'' IS NOT NULL AND TRIM(''||c.column_name||'') IS NULL)''
                     );
  END LOOP;
END;

oracle – 如何清除ODP.NET连接池中的连接错误?

oracle – 如何清除ODP.NET连接池中的连接错误?

我使用NHibernate和ODP.NET连接到Oracle 11g数据库.当然可以有连接错误(网络故障,DB下降,…).我正在处理我的代码中的所有这些异常,所以没有问题.但是当然用户可以重试他的动作(也许这只是一个短暂的网络故障),而且我的问题是:

ODP.NET默认使用连接池.通常没有问题,但是当用户在连接错误后重试操作时,NHibernate从ODP.NET获取无效(池化)连接.用户必须重试多次(直到池为空)才能再次工作.

当然我可以禁用ODP.NET中的连接池,但是我想避免这种情况.我还读了一个设置,检查从池中每个返回的连接到DB的连接,但这又增加了我想避免的每个连接的一次往返.

有没有办法配置ODP.NET在任何连接引发连接异常时自动清除连接池?

如果可以使用odac(odp)11g,则可以为池设置验证连接.在使用连接之前,可以验证连接.

The Validate Connection attribute validates connections coming out of the pool. This attribute should be used only when absolutely necessary,because it causes a round-trip to the database to validate each connection immediately before it is provided to the application. If invalid connections are uncommon,developers can create their own event handler to retrieve and validate a new connection,rather than using the Validate Connection attribute. This generally provides better performance.

如果它不够好 – 你可以尝试从oracle的this文档.

Connection Pool Management

ODP.NET connection pool management provides explicit connection pool
control to ODP.NET applications. Applications can explicitly clear
connections in a connection pool.

Using connection pool management,applications can do the following:

Note: These APIs are not supported in a .NET stored procedure. Clear
connections from connection pools using the ClearPool method.

Clear connections in all the connection pools in an application
domain,using the ClearallPools method.

When connections are cleared from a pool,ODP.NET repopulates the pool
with new connections that have at least the number of connections set
by Min Pool Size in the connection string. New connections do not
necessarily mean the pool will have valid connections. For example,if
the database server is down when ClearPool or ClearallPools is called,
ODP.NET creates new connections,but these connections are still
invalid because they cannot connect to the database,even if the
database comes up a later time.

It is recommended that ClearPool and ClearallPools not be called until
the application can create valid connections back to the database.
.NET developers can develop code that continuously checks whether or
not a valid database connection can be created and calls ClearPool or
ClearallPools once this is true.

另外,可能是this post会帮你的.

更新:
正如@Mpelletier所指出的那样,对于oracle 12 the link is different.

oracle10g – 如何删除Oracle 10中的用户,包括它的所有表空间和数据文件

oracle10g – 如何删除Oracle 10中的用户,包括它的所有表空间和数据文件

当我给出命令删除用户即DROP USER’username’级联时,

>它是否删除该特定用户使用的所有表空间和数据文件.
>如果没有,删除该特定用户使用的所有表空间/数据文件/磁盘空间的命令是什么.

删除用户后,您需要为每个相关的表空间将其脱机并将其删除.例如,如果您有一个名为“SAMPLE”的用户和两个表空间称为“SAMPLE”和“SAMPLE_INDEX”,则需要执行以下操作:
DROP USER SAMPLE CASCADE;
ALTER TABLESPACE SAMPLE OFFLINE;
DROP TABLESPACE SAMPLE INCLUDING CONTENTS;
ALTER TABLESPACE SAMPLE_INDEX OFFLINE;
DROP TABLESPACE SAMPLE_INDEX INCLUDING CONTENTS;

关于如何清除Oracle中的所有缓存项目如何清除oracle中的所有缓存项目数据的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于database – 如何更新oracle中列的所有行,其起始值为500,并在oracle中递增、oracle – 如何修剪string类型的所有表中所有行的所有列?、oracle – 如何清除ODP.NET连接池中的连接错误?、oracle10g – 如何删除Oracle 10中的用户,包括它的所有表空间和数据文件的相关知识,请在本站寻找。

本文标签: