Reorganization of tablespaces, tables and indexes.
Hello Experts,
What is the concept of tablespaces, statistics , tables and indexes in SAP/Oracle ? Where are they used and what are they meant for ?
Wt is the concept and procedure of performing Reorganization of tablespaces, tables and indexes ? why do we need it for ?
Requested to revertb at earliest as its urgent . points guaranteed .
Regards,
Somya
Hello Somya,
Probably difficult to explain entire information in this thread. But you definately get good information in the following link
http://help.sap.com/saphelp_47x200/helpdata/en/0d/d2fafd4a0c11d182b80000e829fbfe/frameset.htm
Please drill down through menus, and you will be able to get good information.
Also you can check the following SAP notes
666061 FAQ: Database objects, segments and extents
912620 FAQ: Oracle indexes
588668 FAQ: Database statistics
592393 FAQ: Oracle
541538 FAQ: Reorganizations
Regards,
Madhukar
Similar Messages
-
Import dumpfile with seperate tablespaces for table and index
Hi,
We have a schema for which the its tables are stored in seperate tablespace and indexes are stored in different tablespace. Now we have take full schema export. Now we want to import it on another schema. Now I want to know if the we have difference in the tablespace name we use REMAP_TABLESPACE clause of the impdp command but what about the seperate tablespace for table and indexes. How would Oracle handle this.
Regards,
AbbasiHi,
I hope you created the same tablespace structure on the target side if not so remap_tablespace option you have to use for specifying different tablespaces.Oracle will take care of putting data and index.Any how if a index is moved from one tablespace to other you have to rebuild them,once you rebuild them than only stattistics are gathered otherwise you
might face some performance issue.
Better option is to keep same tablespace structures in source and target environment.
Best regards,
Rafi.
http://rafioracledba.blogspot.com
Edited by: Rafi (Oracle DBA) on May 9, 2011 7:07 AM -
Generate the tablespace clause for tables and indexes
How can I make Designer generate the tablespace clause for the create table and create index statements?
I assigned tables and indexes to Tablespaces objects in designer but they don't seem to have any effect on the generator.
I am using the latest version of Oracle Designer.
Thanks
Message was edited by:
bikercGuess I am not real clear what you want.
In the DB admin tab you will need to create the tablespace with the data file.
Then you need to assign the table space to the table.
You will need to generate from the DB Admin tab.
Hope this helps.
Michael -
After move tables and index another tablespace, indexes got unusable?
Hi,
I moved table and indexes another tablespace. After move many indexes got unusable state. I couldn't understand thiis?
How can I make them again usable?
regards and thanks?hi,
check this query below
create table test (id number(10));
create table succeeded.
insert into test values (10);
1 rows inserted
commit;
create index test_indx on test(id);
select index_name, status from user_indexes
where table_name = 'TEST';
INDEX_NAME STATUS
TEST_INDX VALID
alter table test move tablespace users;
select index_name, status from dba_indexes
where table_name = 'TEST';
INDEX_NAME STATUS
TEST_INDX UNUSABLE
rebuliding index
alter index test_indx rebuild
alter index test_indx succeeded.
then check
select index_name, status from user_indexes
where table_name = 'TEST';
INDEX_NAME STATUS
TEST_INDX VALID -
Fragmentation in tables and indexes with 9.2.0.5
Hi guys ,
I need of query to identified fragmentation in tables and indexes using Oracle 9i,someone could help me send that's querys
tks
spaulonciFragmentation by itself at the tablespace level doesn't mean any thing from the performance point of view, only from the storage capacity perspective, and this just in case fragments are not necessarily the same size as in the case of dictionary manged tablespaces.
You may be concerned about block density, which actually could lead to performance degradation. I suggest you to consider using coalesce instead of rebuilding in the case of indexes, and in the case of tables you should perform a segment reorganization. In the case of 9iR2 the coalesce command for table segments is not available so you will have to perform another segment reorganization strategy. If there are meaningful differences with the high water mark, average number of rows per block and chained rows then you will notice performance differences.
I suggest you to take metrics for block usage prior to perform an index coalesce operation, as well as prior to perform a data segment reorganization to assess if the reorganization effort is useful.
~ Madrid
http://hrivera99.blogspot.com/ -
DB02 view is empty on Table and Index analyses DB2 9.7 after system copy
Dear All,
I did the Quality refresh by System copy export/import method. ECC6 on HP-UX DB29.7.
After Import Runstats status n Db02 for Table and Index analysis was empty and all value showing '-1'. Eventhough
a) all standard backgrnd job scheduled in sm36
b) Automatic runstats are enabled in db2 parameters
c) Reorgchk all scheduled periodically from db13 and already ran twice.
4) 'reorgchk update statistics on table all' was also ran on db2 level.
but Run stats staus in db02 was not getting updated. Its empty.
Please suggest.
Regards
VinayHi Deepak,
Yes, that is possible (but only offline backup). But for the new features like reclaimable tablespace (to lower the high watermark)
it's better to export/import with systemcopy.
Also with systemcopy you can use index compression.
After backup and restore you can have also reclaimable tablespace, but you have to create new tablespaces
and then work with db6conv and online table move to move one tablespace online to the new one.
Best regards,
Joachim -
Cannot INSERT records into Partitioned Spatial Table and Index
I am trying to tune our Spatial Storage by creating partitioning our spatial_entity table and index. I used the World Geographic Reference System (GEOREF) creating a partition for each 15 x 15 degree grid square assigning a partition key of decimal longitude, decimal_latitude. The build went OK, however when trying to insert a data record I receive an ORA-14400: Inserted partition key does not map to any partition.
I validated the CREATE(s), and all appears correct, but obviously something is not correct, which is prompting for expert help in this forum.
I would be very grateful for your help.
Below are the code snippets for the table and index, and an insert statement.
CREATE TABLE spatial_entity
geoloc_type VARCHAR2 (60 BYTE) NOT NULL
,entity_id NUMBER NOT NULL
,metadata_xml_uuid VARCHAR2 (40 BYTE) NOT NULL
,geoloc MDSYS.sdo_geometry NOT NULL
,nee_method CHAR (1 BYTE) NOT NULL
,nee_status CHAR (1 BYTE) NOT NULL
,decimal_latitude NUMBER (15, 6) NOT NULL
,decimal_longitude NUMBER (15, 6) NOT NULL
PARTITION BY RANGE (decimal_longitude, decimal_latitude)
PARTITION p_lt_0_90s
VALUES LESS THAN (1, -90)
,PARTITION p_lt_0_75s
VALUES LESS THAN (1, -75)
,PARTITION p_lt_0_60s
VALUES LESS THAN (1, -60)
,PARTITION p_lt_0_45s
VALUES LESS THAN (1, -45)
,PARTITION p_lt_0_30s
VALUES LESS THAN (1, -30)
,PARTITION p_lt_0_15s
VALUES LESS THAN (1, -15)
,PARTITION p_lt_0_0
VALUES LESS THAN (1, 0)
,PARTITION p_lt_0_15n
VALUES LESS THAN (1, 15)
,PARTITION p_lt_0_30n
VALUES LESS THAN (1, 30)
,PARTITION p_lt_0_45n
VALUES LESS THAN (1, 45)
,PARTITION p_lt_0_60n
VALUES LESS THAN (1, 60)
,PARTITION p_lt_0_75n
VALUES LESS THAN (1, 75)
,PARTITION p_lt_0_90n
VALUES LESS THAN (1, maxvalue)
CREATE INDEX geo_spatial_ind ON spatial_entity (geoloc)
INDEXTYPE IS mdsys.spatial_index
PARAMETERS ('layer_gtype=MULTIPOINT TABLESPACE=GEO_SPATIAL_IND') LOCAL
(PARTITION p_lt_0_90s,
PARTITION p_lt_0_75s,
PARTITION p_lt_0_60s,
PARTITION p_lt_0_45s,
PARTITION p_lt_0_30s,
PARTITION p_lt_0_15s,
PARTITION p_lt_0_0,
PARTITION p_lt_0_15n,
PARTITION p_lt_0_30n,
PARTITION p_lt_0_45n,
PARTITION p_lt_0_60n,
PARTITION p_lt_0_75n,
PARTITION p_lt_0_90n,
INSERT INTO spatial_entity
geoloc_type
,entity_id
,metadata_xml_uuid
,geoloc
,nee_method
,nee_status
,decimal_latitude
,decimal_longitude
VALUES
'BATCH'
,0
,'6EC25B76-8482-4F95-E0440003BAD57EDF'
,"MDSYS"."SDO_GEOMETRY"
2001
,8307
,"MDSYS"."SDO_POINT_TYPE" (32.915286, 44.337902, NULL)
,NULL
,NULL
,'M'
,'U'
,32.915286
,44.337902
Thank you for you help.
DaveThank you for your quick reply. I did not post the entire CREATE script as it is quite long. The portion of the script that is applicable to the INSERT is:
,PARTITION p_lt_45e_90s
VALUES LESS THAN (23, -90)
,PARTITION p_lt_45e_75s
VALUES LESS THAN (23, -75)
,PARTITION p_lt_45e_60s
VALUES LESS THAN (23, -60)
,PARTITION p_lt_45e_45s
VALUES LESS THAN (23, -45)
,PARTITION p_lt_45e_30s
VALUES LESS THAN (23, -30)
,PARTITION p_lt_45e_15s
VALUES LESS THAN (23, -15)
,PARTITION p_lt_45e_0
VALUES LESS THAN (23, 0)
,PARTITION p_lt_45e_15n
VALUES LESS THAN (23, 15)
,PARTITION p_lt_45e_30n
VALUES LESS THAN (23, 30)
,PARTITION p_lt_45e_45n
VALUES LESS THAN (23, 45)
,PARTITION p_lt_45e_60n
VALUES LESS THAN (23, 60)
,PARTITION p_lt_45e_75n
VALUES LESS THAN (23, 75)
,PARTITION p_lt_45e_90n
VALUES LESS THAN (23, maxvalue)
Or, I do not fully understand. Are you indicating that I must explcitly state the longitude in each clause,
e.g ,PARTITION p_lt_45e_45n
VALUES LESS THAN (45, 45)
,PARTITION p_lt_45w_45n
VALUES LESS THAN (-45, 45)
If so, that answers the question of why it cannot find a partition, however an Oracle White Paper "Oracle Spatial Partitioning Best Practices" Sept 2004, discusses multi column partitioning such as represented by this problem, and gives an INSERT statement example of :
CREATE TABLE multi_partn_table (in_date DATE,
geom SDO_GEOMETRY, x_value NUMBER, y_value NUMBER)
PARTITION BY RANGE (X_VALUE,Y_VALUE)
PARTITION P_LT_90W_45S VALUES LESS THAN (1,-45),
PARTITION P_LT_90W_0 VALUES LESS THAN (1,0),
PARTITION P_LT_90W_45N VALUES LESS THAN (1,45),
PARTITION P_LT_90W_90N VALUES LESS THAN (1,MAXVALUE
and as I am writing this I am seeing that I failed to include the longitude and latitude in the SDO_GEOMETRY clause, so it does appear tht I need to explicitly state the longitude valuues.
What is your judgement sir?
Dave -
Separate table and index data in RAC database
Hi Experts,
Our database is Oracle11g RAC database. I need your expertise on this
Do we need to retain the table and index data in two different tablespaces for performance perspective in RAC database too?
Please share your practical experience…Thanks in advance.
Regards
Richardg777 wrote:
In my opinion, if there is striping implemented then performance shouldn't degrade even if the index and table blocks are in one tablespace. Exactly.. striping is NOT a good idea at tablespace level as a tablespace is a logical storage device. It is very difficult to stripe comprehensively/correctly at that level, if not impossible.
Striping is a function of the actual storage system and need to happen at physical level. A proper RAID0 implementation.
So the question about multiple tablespaces for a performance increase should not be about striping - but about issues such as data management, block sizes, transportable tablespaces and so on.
Thus my question (at the OP) - what performance problems are expected and are these relevant to the number of tablespaces? -
How Find space Used by Tables and Indexes
Dear All(s)
How i check space used (and number of rows) by each table and index in schema. ( can i check current space utilization and sysdate-date past in time)
How i can check used, and free space for each database and tablespace.
ThanksYou can always use the search feature
anyway
how to calculate the percentage of free space for a table in Oracle
Re: incorrect free space in dba_free_space
These links could give you all the necessary info -
How to partition tables and indexes in this scenario?
So our situation is pretty simple. We have 3 tables.
A, B and C
the model is A->>B->>C
Currently A, B and C are range partitioned on a key created_date however it's typical that only C is every qualfied with created date. There is a foreign key from B -> A and C -> B
we have many queries where the data is identified by state that is indexed currently non partitioned on columns in A ... there are also indexes on the foreign keys that get from C -> B -> A. Again these are non partitioned indexes at this time.
It is typical that we qualify A on either account or user or both. There are indexes (non partitioned) on these
We have a problem now because many of the queries use leading wildcards ie. account like '%ACCOUNT' etc. This often results in large full table scans. Our solution has been to remove the leading wildcard but this isn't always possible.
We are wondering how we can benefit from partitioning and or sub partitioning table A. since it's partitioned on created_date but rarely qualify by that.
We are also wondering where and how we can benefit from either global partitioned index or local partitioned indexes on tables A. We suspect that the index on the foreign key from C to B could be a local partitioned index.
I am also wondering what impact pushing the state from A that's used to qualify A down to C would have any advantage.
C is the table that currently we qualify with the partition key so I figure if you also pushed down the state from A that's used to qualify the set of C's we want based on the set of B's we want based on the set of A thru qualfying on columns within A.
If we push down some of those values to C and simply use C when filtering I'm wondering what the plans will look like compared to having to work all the way up from the bottom to the top before it begins qualifying A.
Edited by: steffi on Jan 14, 2011 11:36 PMWe are wondering how we can benefit from partitioning and or sub partitioning table A. since it's partitioned on >created_date but rarely qualify by that. Very good question. Why did you partition on it? You will never have INSERTS on these partitions, but maybe deletes and updates? The only advantage (I can think of) would be to set these partitions in a read only tablespace to ease backup... but that's a weired reason.
we have many queries where the data is identified by state that is indexed currently non partitioned on columns in >A ... there are also indexes on the foreign keys that get from C -> B -> A. Again these are non partitioned indexes at >this time.Of course. Why should they be partitioned by Create_date?
It is typical that we qualify A on either account or user or both. There are indexes (non partitioned) on these
We have a problem now because many of the queries use leading wildcards ie. account like '%ACCOUNT' etc. This >often results in large full table scans. Our solution has been to remove the leading wildcard but this isn't always possible.I would suspect full index scan. Isn't it?
We are also wondering where and how we can benefit from either global partitioned index or local partitioned >indexes on tables A. We suspect that the index on the foreign key from C to B could be a local partitioned index.As A is not accessed by any partition, why should C and B profit? You should look to partition by the key you are using to access. But, you are looking to tune your SQLs where the access is like '%ACCOUNT' on A. Then when there is a match. ORACLE joins via your index and nested loop (right?) to B and C.
I am also wondering what impact pushing the state from A that's used to qualify A down to C would have any >advantage.Why should it. It just makes the table and indexes larger => more IO.
C is the table that currently we qualify with the partition key so I figure if you also pushed down the state from A >that's used to qualify the set of C's we want based on the set of B's we want based on the set of A thru qualfying >on columns within A.If the access from A to C would be .. AND A.CREATE_DATE =C.CREATE_DATE and c.key like '%what I want%' which does not qualifify for a FK ;-) then, as that could be resulting in a partition scan, you could "profit". But, I'm sure that's not your model.
If we push down some of those values to C and simply use C when filtering I'm wondering what the plans will look >like compared to having to work all the way up from the bottom to the top before it begins qualifying A.So you want to denormalize A,B,C and into one table? With the same access is like '%ACCOUNT' you would get a full scan on an index as before, just the objects would be larger due to redundance and harder to maintain. In the end you would have a bad and slower design.
Maybe you explain what the problem is.
Full index scan can not be avoided, but that can be made faster by e.g. parallel query, and then the join to B and C should be a "snip" if you just identify a small subset of rows in these tables. -
Report to find all table and index sizes
Hi all,
Good day..
Is there any report.sql or so to find out the sizes of all the tables and indexes in a database.
thanks,
baskar.l1.To get table size
What will be the table size if?
<or>
break on report
set line 200
COMPUTE SUM LABEL "Total Reclaimable Space" OF "KB Free Space" ON REPORT
column "Table Size" Format a20
column "Actual Data Size" Format a20
column "KB Free Space" Format "9,99,999.99"
select table_name,
round((blocks*8),2)||'kb' "Table size",
round((num_rows*avg_row_len/1024),2)||'kb' "Actual Data size",
pct_free,
round((blocks*8),2) - (round((blocks*8),2)*pct_free/100) - (round((num_rows*avg_row_len/1024),2)) "KB Free Space"
from user_tables
where round((blocks*8),2) - (round((blocks*8),2)*pct_free/100) - (round((num_rows*avg_row_len/1024),2)) > 0
order by round((blocks*8),2) - (round((blocks*8),2)*pct_free/100) - (round((num_rows*avg_row_len/1024),2)) desc
2.To get index size
How to size the Index
Hth
Girish Sharma -
Missing Tables and Indexes greyed out in DBACOCKPIT
Hi All,
I use Solution Manager 7.01 with MS SQL Server 2008 DB.
I want to monitor with DBACOCKPIT a MS SQL Server 2005 DataBase of a SAP BPC 5.1.
I connected the DB but in DBACOCKPIT some functionality are greyed out.
I want to use in Diagnostics section the "MISSING TABLES AND INDEXES" function but this command is greyed out.
Is it possible to use this function?
Please, help me!
Regards,
AlessandroHi,
Gray color means that screen is disabled for any reason (authorization, SQL Server release, monitoring remote, etc).
I believe, those items cannot be monitored unless these limitations are sorted out.
Please refer to the Document "The SAP DBA Cockpit for Microsoft SQL Server" in SDN.
You can get the status about the restriction in the bottom of dbacockpit screen.
Thanks,
Jagan
Edited by: jagadheeshan govindasamy on Sep 16, 2009 1:03 PM -
Missing Tables and Indexes in 3.5
Hi,
when i am executing Tcode DB02 then under Missing Tables and Indexes i find 35 Indexes as not created.
can anybody tell me what does that signify. is this a issue if so how to fix it.
Indexes not created
ADCP-I04
ADCP-I03
ADCP-I02
ADCP-I01
ADCPS-I01
ADCPS-I02
ADCPS-I03
ADCPS-I04
ADRC-I14
ADRC-I11
ADRC-I05
ADRC-I02
ADRC-G
ADRP-I01
ADRP-I02
ADRP-I03
ADRP-I04
ADRP-I07
ADRP-I08
ADRP-I09
ADRV-I01
BUT000-PER
CDHDR-001
CDHDR-002
CRMD_ORDERADM_I-PKI
CRMD_ORDERADM_I-DES
ISSUE_RELATION-001
NAST-ADQ
RMPS_T_RESUB-RAG
RMPS_T_RESUB-RCU
SSPICSPRHD-S02
SSPICSTRHEAD-S01
SSPICSTRPL-FLD
STXH-TDN
SWBRULECOM-RSY
RakeshHi Rakesh,
First thing this is not an issue but an information that says that these indexes are not be created in the System.
This option Indexes not created is an SAP table maintained from Dev to Prod just to indicate that these indexes cannot be created.
That's the reason why u have a green mark beside them and this will make clear for you that this is not an issue.
Hope it helps!!!!
Thanks & Regards,
Neelesh Jain. -
Hi SAP Gurus,
on our SAP NetWeaver 7.x BW (based on AIX/Oracle) I find via transaction DB02 (path = Diagnostics => Missing Tables and Indexes) under "Unknown objects in ABAP Dictionary" under DB views a BW object /BI0/.....
When I make a double click on the object, I am getting the popup window "Display not possible for this object":
How can I identify the object and clarify with the BW application expert, if needed, how to resolve this object?
I searched already via RSA1 for the object, but I wasn't able to find anything so far ...
Thanks for your help and ideas.
Best regards
CarlosHello Carlos
The database view in question is a temporary database object created during a query execution.
Please read this SAP note 449891 - Temporary database objects in BW 3.x to understand what that view is all about and impact if those views are removed.
The SAP notes 449891 and 1139396 suggests to run the report SAP_DROP_TMPTABLES to drop these temporary objects. Whether the objects are still required or not is a question to be put across to the BW team. If the temporary objects are removed when they are used by a query, then the query will fail.
Have a nice day
RB -
BW DB13 Tables and indexes missing
hi, everyone,
our team find a strangethings in DB02 about the growth of table space, there is even no any growth, and it keeps about two months. and then we found that in tables and indexes all table about BW like *ODSD, *FACTD, *DIMD are missing!
I only find DB13C appear the error as" REOGR CHK for All Tables" at the same time .
please tell me why I can't find BW tables ? is there any relations between tables missing and job calendar?
our level is 701, and database is DB6.It's a fool questions, i found the reason is so easy^^
Maybe you are looking for
-
When i try to download 'Get album artwork' I receive error alert with (-609) I have tried to download the artwork on the advanced tab, but still no success. My computer runs Windows 7 and the alert appears in my itunes which on my computer.Can you as
-
I am just starting out in application server world. I was just hired on to a company that has an aggressive portal project underway. They are trying to sync active directory with oid. I am having a helluva time finding a concepts guid on oid. They ar
-
Always Use Artboard to Export (CS5)
In adobe Illustrator CS5 - Is there a way to always Use Artboards when exporting to JPG...etc? - instead of having to click the check box every time? Actions don't work because they save the path that was last used - I just want to simply be able to
-
Initial impression of 7200rpm 100GB Seagate drive; not good
I installed the Seagate Momentus 100GB 7200rpm drive into my 1.83Ghz MacBook, which has 2GB of GigaRam RAM from NewEgg. My MacBook came with the 60GB 5400rpm FUJITSU MHV2060BHPL. The first thing I noticed about the Seagate drive was how much vibratio
-
I am trying to do a split() and replaceall() but am getting an error stating "undefined for t ype string" and therefore can not use these methods. I am using j2sdk1.4.2_11. Anyone with ideas on what may be the issue?