Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: General question about databases and applications
justforspm_at_hotmail.com (Anonymous) wrote in
news:b2cbfb8a.0212070704.4212ecfc_at_posting.google.com:
> I have done some extensive research and reading on this subject over
> the last few weeks in response to an assertion made to me by someone I
> work with. The problem in a nutshell: is there any way to find out
> what and how applications use a database? Since that is a loaded
> question that definitely requires some explanation, here it is. My
> co-worker made the statement that it is possible to find out what
> columns and tables are changed by an application and in what way,
> without actually having access to the application source code or
> design documentation. For instance, our database is Oracle 8.1.7
> running on a DEC Alpha box with DEC UNIX. The applications hit the
> database from client PCs running Win2K via a suite of different
> application programs. There are also database scripts that run
> periodically that make changes to the database directly. I believe
> (without a lot of experience or knowledge to back it up) that in order
> to find out what gets changed and how it gets changed during the
> running of an application, you need to look at the application source
> code to see what it is doing. It may be running stored procedures, SQL
> scripts, etc., but without either the source code or a design document
> that tells you what columns and tables the application changes, or
> what stored procedures or scripts are running, there is no way (that I
> am aware of) to know what gets changed and how.
>
> I would welcome any questions or comments and if there are references
> (book, online, etc.), I would appreciate those as well.
>
> First time poster
>
Here is one way to see "what gets changed".
1) Take a "snapshot" of the DB; say by either hot or cold back 2) Restore the DB onto a different box 3) Run the application s/w 4) For each table in th DB...
SELECT * FROM TABLE_at_LIVE_DB
MINUS
SELECT * FROM TABLE_at_SNAPSHOT_DB;
The records returned are the ones which got changed by the application.
Using a similar approach you could even ID the columns which got changed.
I am NOT claiming this to be a fast way to see "what gets changed",
but it is fairly straightforward & would be effective.
HTH & YMMV HAND! Received on Sat Dec 07 2002 - 09:47:09 CST
![]() |
![]() |