{"id":11580,"date":"2019-10-24T08:57:52","date_gmt":"2019-10-24T08:57:52","guid":{"rendered":"https:\/\/ittutorial.org\/?p=11580"},"modified":"2020-11-13T12:25:25","modified_gmt":"2020-11-13T12:25:25","slug":"sql-tuning-tips-and-tricks-tutorial-oracle-1","status":"publish","type":"post","link":"https:\/\/ittutorial.org\/sql-tuning-tips-and-tricks-tutorial-oracle-1\/","title":{"rendered":"SQL Tuning Tips and Tricks Tutorial in Oracle -1"},"content":{"rendered":"<p>I will explain\u00a0Oracle SQL Tuning Tips and Tricks in this article.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11583\" src=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/oracle-sql-tuning-tips-and-tricks.jpg\" alt=\"\" width=\"710\" height=\"332\" srcset=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/oracle-sql-tuning-tips-and-tricks.jpg 710w, https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/oracle-sql-tuning-tips-and-tricks-300x140.jpg 300w\" sizes=\"auto, (max-width: 710px) 100vw, 710px\" \/><\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #ff0000;\">Oracle SQL Tuning Tips and Tricks<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p>Before SQL Tuning Tips and Tricks, you should read the following Performance Tuning tutorial, if you don&#8217;t know how to tune Oracle database Performance.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"vvOqxOQsuc\"><p><a href=\"https:\/\/ittutorial.org\/performance-tuning-features-and-tools-in-oracle-oracle-database-performance-tuning-tutorial-2\/\">Performance Tuning Features and Tools in Oracle | Oracle Database Performance Tuning Tutorial -2<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Performance Tuning Features and Tools in Oracle | Oracle Database Performance Tuning Tutorial -2&#8221; &#8212; IT Tutorial\" src=\"https:\/\/ittutorial.org\/performance-tuning-features-and-tools-in-oracle-oracle-database-performance-tuning-tutorial-2\/embed\/#?secret=47sCoVSlZd#?secret=vvOqxOQsuc\" data-secret=\"vvOqxOQsuc\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #ff0000;\">SQL Tuning Tips and Tricks<\/span><\/h3>\n<p>&nbsp;<\/p>\n<p>To increase all Database Performance, you should tune both database and SQL statements.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\"><strong>There are lots of tips and tricks for SQL Tuning but they may not work\u00a0under every circumstance.<\/strong><\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\"><strong>These tips and tricks are a reference\u00a0while fixing performance problems in the Oracle Database.<\/strong><\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong><span style=\"color: #ff0000;\">1- Run TOP SQL Statements according to your Workload status.<\/span><\/strong><\/p>\n<p>You should know or find busy and free time of database.<\/p>\n<p>Small transactions can run every time in the OLTP database, but Batch jobs or\u00a0TOP SQL statements like ETL, Reporting and etc should not run every time.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11602\" src=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/workload.jpg\" alt=\"\" width=\"777\" height=\"504\" srcset=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/workload.jpg 777w, https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/workload-300x195.jpg 300w, https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/workload-768x498.jpg 768w\" sizes=\"auto, (max-width: 777px) 100vw, 777px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>If you run TOP SQL statements like ETL, Reporting and etc, then you should set available time of database for this task.<\/p>\n<p>If your database load is low in the daylight, you can run it. if database is very busy, you may run it at night or weekend.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>2- Make sure that CBO ( Cost based Optimizer ) statistics are correct<\/strong><\/span><\/p>\n<p>Statistic of Database and its objects should be up to date in Oracle database for Oracle optimizer. Because Oracle optimizer\u00a0uses database statistics to generate lots of execution plans in same time and If statistics are up to date ,then Optimizer decide correct execution plans.<\/p>\n<p>&nbsp;<\/p>\n<p>If your database statistics are staled (\u00a0out of date ), then you should update it. If you don&#8217;t know how to perform it, you can read the following article.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"eJoqWLsL8u\"><p><a href=\"https:\/\/ittutorial.org\/dbms_stats-gather-database-stats-dictionary-and-fixed-object-stats-oracle\/\">Gather Database Stats , Schema Stats &#038; Dictionary and Fixed Object Statistics via DBMS_STATS in Oracle<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Gather Database Stats , Schema Stats &#038; Dictionary and Fixed Object Statistics via DBMS_STATS in Oracle&#8221; &#8212; IT Tutorial\" src=\"https:\/\/ittutorial.org\/dbms_stats-gather-database-stats-dictionary-and-fixed-object-stats-oracle\/embed\/#?secret=aFR3L5vl2f#?secret=eJoqWLsL8u\" data-secret=\"eJoqWLsL8u\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>3- Check and Monitor Optimizer_Mode parameters<\/strong><\/span><\/p>\n<p>The default value of <strong>optimizer_mode<\/strong> parameter is <strong>ALL_ROWS<\/strong> which gives better throughput, but sometimes your application or software needs <strong>FIRST_ROWS\u00a0<\/strong>if the response time is important.<\/p>\n<p>Make sure that your software or application is running very well if the <strong>optimizer_mode<\/strong> is <strong>FIRST_ROWS<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>3- Cursor Sharing and Bind Variable<\/strong><\/span><\/p>\n<p>You should set\u00a0CURSOR_SHARING ( default value is Exact ) parameter value according to your database and software. If related application is not used Bind Variable , response time low due to a very high number of library cache misses and lots of SQL Statements matches with the text of SQL except the literal, then you should use\u00a0<strong>CURSOR_SHARING=FORCE.\u00a0<\/strong><\/p>\n<p><strong>Actually Cursor_sharing= force is temporary solution, Permanent solution is to use Bind Variable.<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Oracle doesn\u2019t recommend <strong>CURSOR_SHARING=FORCE<\/strong> in the DSS(Decision support system) environment or if you are using complex queries<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>4- Index Usage<\/strong><\/span><\/p>\n<p>The usage of Index is very common especially in the performance tuning of Oracle Databases. It is one of the most important objects that are indispensable and proper performance tuning of databases.<\/p>\n<p>You should use an index if less than 5% of the data needs to be accessed from a data set.<\/p>\n<p>&nbsp;<\/p>\n<p>There are some advantages and disadvantages using Index in Oracle database. You should read the following article to read advantages and disadvantages of Index.<\/p>\n<p>&nbsp;<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"KFHZKpYLLV\"><p><a href=\"https:\/\/ittutorial.org\/index-in-oracle-database-what-is-an-index-advantages-and-disadvantages-in-oracle-database\/\">What is an Index ( Advantages and Disadvantages ) in Oracle Database<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;What is an Index ( Advantages and Disadvantages ) in Oracle Database&#8221; &#8212; IT Tutorial\" src=\"https:\/\/ittutorial.org\/index-in-oracle-database-what-is-an-index-advantages-and-disadvantages-in-oracle-database\/embed\/#?secret=vWm61pxApO#?secret=KFHZKpYLLV\" data-secret=\"KFHZKpYLLV\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>If your tables are getting\u00a0extremely DML, you should not use so many Index on this table. Sometimes Dropping index will provide us extra performance.<\/p>\n<p>If you don&#8217;t know how to create an Index, you should read the following article.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"j98qJmlIxQ\"><p><a href=\"https:\/\/ittutorial.org\/index-types-and-index-create-in-oracle-database\/\">Index Types and Index Create in Oracle Database<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Index Types and Index Create in Oracle Database&#8221; &#8212; IT Tutorial\" src=\"https:\/\/ittutorial.org\/index-types-and-index-create-in-oracle-database\/embed\/#?secret=TL4qUykkH8#?secret=j98qJmlIxQ\" data-secret=\"j98qJmlIxQ\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Use <strong>function-based indexes<\/strong> If queries contain\u00a0a built-in function like to_char, decode, substr, etc. If you don&#8217;t use function-based indexes, SQL query may cause a full-table scan instead of Index scan.<\/p>\n<p>&nbsp;<\/p>\n<p>If query contains WHERE lower(FIRST_NAME) statement, then index should be created as follows.<\/p>\n<pre>SELECT * FROM HR.EMPLOYEES WHERE lower(FIRST_NAME)='Donald';<\/pre>\n<pre>CREATE INDEX EMPLOYEE_X2 ON HR.EMPLOYEES(LOWER(FIRST_NAME)) TABLESPACE HR_INDEX;\r\n\r\n\r\n\r\n<\/pre>\n<p><span style=\"color: #ff0000;\"><strong>5-\u00a0Materialized views usage<\/strong><\/span><\/p>\n<p>Materialized views is used to\u00a0pre-sort sets, pre-summarize complex data warehouse information , pre-join tables and create complex objects conflicts dynamically with the demand for sub-second response time.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11603\" src=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/materialized-view-oracle.png\" alt=\"\" width=\"900\" height=\"347\" srcset=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/materialized-view-oracle.png 900w, https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/materialized-view-oracle-300x116.png 300w, https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/materialized-view-oracle-768x296.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>If you don&#8217;t use materialized views, you can see unnecessary repeating large-table full-table scans.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>6- Remove Subqueries<\/strong><\/span><\/p>\n<p>You may remove subqueries\u00a0(exists, in, not in) in the Complex queries and rewrite and use Join instead of subquery for\u00a0faster performance.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>7- Use Stored Procedure instead of Views<\/strong><\/span><\/p>\n<p>You should\u00a0encapsulate the complex SQL inside a stored procedure instead of view usage. Because views are caused\u00a0Unnecessary overhead and Excessive hard parsing problems.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>8- Prefer uncomplicated SQL<\/strong><\/span><\/p>\n<p>it is not recommended to use complex SQL and\u00a0subqueries. You should use WITH clause and Global temporary tables to divide and flatten-out queries.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11604\" src=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/How-to-debug-complex-SQL-queries.jpg\" alt=\"\" width=\"576\" height=\"481\" srcset=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/How-to-debug-complex-SQL-queries.jpg 576w, https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/How-to-debug-complex-SQL-queries-300x251.jpg 300w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Decomposing a query into multiple queries are better than a Complex query.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>9- Use Union all instead of Union<\/strong><\/span><\/p>\n<p>If using<strong> union all<\/strong> is possible, you should prefer it instead of union, because <strong>Union<\/strong> are doing expensive sort to remove duplicate rows.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11597\" src=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/union-all-vs-union.png\" alt=\"\" width=\"992\" height=\"481\" srcset=\"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/union-all-vs-union.png 992w, https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/union-all-vs-union-300x145.png 300w, https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/union-all-vs-union-768x372.png 768w\" sizes=\"auto, (max-width: 992px) 100vw, 992px\" \/><\/p>\n<p>&nbsp;<\/p>\n\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>You should prefer\u00a0uncomplicated ( Basic ) SQL instead of very complex SQL, If you cannot divide it, then\u00a0You can make a very complex statement slightly less complex by using the UNION ALL operator<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>10- Avoid Having clause usage<\/strong><\/span><\/p>\n<p>Using <span style=\"color: #ff0000;\"><strong>Having<\/strong> <\/span>clause is very expensive for the Performance tuning. You should prefer <strong>With clause<\/strong> instead of <strong>Having<\/strong> to decompose a complex query.<\/p>\n<p>&nbsp;<\/p>\n<p>I will continue to explain tips and tricks of SQL Tuning in the <a href=\"https:\/\/ittutorial.org\/sql-tuning-tips-and-tricks-tutorial-oracle-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">next article.<\/a><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"BPVNGyWRBX\"><p><a href=\"https:\/\/ittutorial.org\/sql-tuning-tips-and-tricks-tutorial-oracle-2\/\">SQL Tuning Tips and Tricks Tutorial in Oracle -2<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;SQL Tuning Tips and Tricks Tutorial in Oracle -2&#8221; &#8212; IT Tutorial\" src=\"https:\/\/ittutorial.org\/sql-tuning-tips-and-tricks-tutorial-oracle-2\/embed\/#?secret=52WEf8V7U3#?secret=BPVNGyWRBX\" data-secret=\"BPVNGyWRBX\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h5><a href=\"https:\/\/ittutorial.org\/performance-tuning-and-sql-tuning-tutorial-in-the-oracle-database\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #ff0000;\">Do you want to learn Oracle Database Performance Tuning detailed, then Click this link.<\/span><\/a><\/h5>\n","protected":false},"excerpt":{"rendered":"<p>I will explain\u00a0Oracle SQL Tuning Tips and Tricks in this article.<\/p>\n","protected":false},"author":1,"featured_media":11583,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1994,5085,6603],"tags":[6564,6580,6570,6572,6568,6567,6576,6566,6560,6562,6585,6549,6571,6561,6546,6593,6545,6563,6574,6875,6573,6569,10533,10535,6577,6579,6565,6550,6547,6534,6555,6554,6541,6533,6536,6535,6538,6532,6537,6594,6551,6590,6591,6876,10536,6588,6589,10534,6548,6557,6553,6539,6543,6542,6556,6586,6544,6583,6592,6874,6601,6602,6595,6584,6596,6587,6599,6582,6600,6581,6598,4530,6597,6575,6578,6540],"class_list":["post-11580","post","type-post","status-publish","format-standard","has-post-thumbnail","","category-oracle","category-performance-tuning","category-sql-tuning","tag-alter-system-set-cursor_sharing-12c","tag-bind-variable-in-java","tag-bind-variables-in-oracle-dynamic-sql","tag-bind-variables-in-oracle-forms","tag-bind-variables-in-oracle-pl-sql-examples","tag-cursor-in-oracle","tag-cursor-sharing-and-bind-variable-usage","tag-cursor-sharing-force-oracle","tag-cursor_sharing-explained","tag-cursor_sharing-performance-tuning","tag-database-optimization-techniques-sql-server","tag-how-to-create-index-in-oracle-to-improve-performance","tag-how-to-declare-bind-variable-in-oracle-sql-developer","tag-how-to-enable-adaptive-cursor-sharing-12c","tag-how-to-improve-database-performance-in-oracle-11g","tag-how-to-make-select-query-faster-in-oracle","tag-how-to-optimize-sql-query-performance-in-oracle","tag-how-to-reduce-hard-parsing-in-oracle-12c","tag-how-to-remove-bind-variable-in-oracle","tag-how-to-tune-the-query-in-oracle-using-explain-plan","tag-how-to-use-bind-variables-in-oracle-reports","tag-how-to-use-bind-variables-in-oracle-stored-procedure","tag-online-oracle-sql-query-performance-tuning","tag-oracle-12c-performance-tuning-tips","tag-oracle-bind-variables-view","tag-oracle-cursor-bind-variable-example","tag-oracle-cursor_sharing","tag-oracle-database-optimization-techniques","tag-oracle-improve-query-performance","tag-oracle-performance-tuning-12c","tag-oracle-performance-tuning-18c","tag-oracle-performance-tuning-19c","tag-oracle-performance-tuning-basics","tag-oracle-performance-tuning-blogs","tag-oracle-performance-tuning-interview-questions","tag-oracle-performance-tuning-pdf","tag-oracle-performance-tuning-scenarios","tag-oracle-performance-tuning-tips","tag-oracle-performance-tuning-tutorial","tag-oracle-pl-sql-performance-tuning-tips-techniques-pdf","tag-oracle-query-large-table-performance","tag-oracle-sql-performance-tuning","tag-oracle-sql-tricks","tag-oracle-sql-tuning-book","tag-oracle-tips","tag-performance-tuning-in-database","tag-performance-tuning-in-oracle","tag-performance-tuning-in-oracle-11g","tag-performance-tuning-in-oracle-12c-with-examples","tag-performance-tuning-in-oracle-19c","tag-performance-tuning-in-oracle-19c-with-examples","tag-performance-tuning-in-oracle-for-beginners","tag-performance-tuning-in-oracle-for-developer","tag-performance-tuning-in-oracle-interview-questions","tag-performance-tuning-in-oracle-tutorial","tag-performance-tuning-in-sql-server-2012-step-by-step","tag-pl-sql-performance-tuning","tag-query-optimization-in-sql-server-with-example","tag-query-optimization-techniques-in-oracle","tag-query-tuning-in-oracle-interview-questions","tag-sql-code-performance","tag-sql-performance-query","tag-sql-performance-tuning","tag-sql-performance-tuning-tutorial","tag-sql-query-optimization-techniques","tag-sql-query-optimization-tool","tag-sql-query-performance-tuning","tag-sql-query-performance-tuning-tips","tag-sql-select-performance","tag-sql-server-query-optimization-tips","tag-sql-server-query-optimizer","tag-sql-tuning-advisor","tag-sql-view-performance-optimization","tag-substitution-variable-in-pl-sql-example","tag-what-is-bind-variable-in-oracle-with-examples","tag-what-is-performance-tuning-in-oracle-with-examples"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/10\/oracle-sql-tuning-tips-and-tricks.jpg","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/posts\/11580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/comments?post=11580"}],"version-history":[{"count":12,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/posts\/11580\/revisions"}],"predecessor-version":[{"id":32294,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/posts\/11580\/revisions\/32294"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/media\/11583"}],"wp:attachment":[{"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/media?parent=11580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/categories?post=11580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/tags?post=11580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}