{"id":2446,"date":"2020-12-22T07:00:00","date_gmt":"2020-12-22T04:00:00","guid":{"rendered":"https:\/\/www.dataplatform.gr\/?p=2446"},"modified":"2024-09-11T21:33:49","modified_gmt":"2024-09-11T18:33:49","slug":"pos-kanoyme-force-ena-plano-se-vasi-dedomen","status":"publish","type":"post","link":"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/","title":{"rendered":"How to force a plan in an Oracle database"},"content":{"rendered":"<p>In <a href=\"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-force-ena-plano-ston-sql-server-kai-giat\/\" target=\"_blank\" rel=\"noreferrer noopener\">previous article<\/a> we have seen why a query can run with a different plan and how to force one in SQL Server. In this article we will see how to force a plan in an Oracle database using <strong>SQL profile<\/strong>. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Because the query can run with a different plan<\/h2>\n\n\n\n<p>When the <strong>Query Optimizer<\/strong> chooses which plan to use depends on information such as the statistics, the amount of data, the values of the variables, the indexes that exist and the SQL Profile.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"594\" height=\"221\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-09.gif\" alt=\"\" class=\"wp-image-2459\"\/><\/figure>\n\n\n\n<p>If either changes, the Optimizer will create a new plan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Parameter sniffing and Adaptive Cursor Sharing<\/h2>\n\n\n\n<p>As in <strong>SQL Server <\/strong>so also in <strong>Oracle <\/strong>we have his problem <strong>parameter sniffing<\/strong>. When we run a procedure or a sql statement that accepts a parameter depending on the value, the query can return 1 line or 100,000. For the Query Optimizer to use a different plan if it increases performance Oracle has brought it <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/18\/tgsql\/improving-rwp-cursor-sharing.html#GUID-277432AA-CD1C-4A75-AB28-7358E63265B3\" target=\"_blank\" rel=\"noreferrer noopener\">Adaptive Cursor Sharing<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to force a plan using SQL profile<\/h2>\n\n\n\n<p>That <strong>SQL Profile<\/strong> provides statistics for a SQL Statement and through these statistics o <strong>Query Optimizer<\/strong> will choose which plan to use.<\/p>\n\n\n\n<p>We can <strong>to create a SQL Profile<\/strong> but so that we use some <strong>past shot<\/strong> which is either located in <strong>memory (library_cache)<\/strong> either in the system view <strong>dba_hist_sqlplan<\/strong>.<\/p>\n\n\n\n<p>Carolos Sierra from Oracle Support has made a script named <em>coe_xfr_sql_profile.sql<\/em> which makes it easy to create a SQL Profile that forces a plan into a SQL Statement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example<\/h2>\n\n\n\n<p>Running a query twice, we see in the system view <a href=\"https:\/\/docs.oracle.com\/cd\/B19306_01\/server.102\/b14237\/dynviews_2129.htm#REFRN30259\" target=\"_blank\" rel=\"noreferrer noopener\">gv$sqlarea<\/a> that the same SQL_ID has a very different execution time per plan. We keep it from there <strong>SQL_ID<\/strong> and <strong>PLAN_HASH_VALUE <\/strong>which is faster and we want to force.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select inst_id,sql_text,sql_fulltext,sql_id,hash_value,plan_hash_value,elapsed_time,last_load_time from gv$sqlarea \nwhere sql_text like '%SELECT h.LOGON_TIME%'\norder by sql_id;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"929\" height=\"119\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/02\/fpo-00.png\" alt=\"\" class=\"wp-image-2953\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/02\/fpo-00.png 929w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/02\/fpo-00-300x38.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/02\/fpo-00-768x98.png 768w\" sizes=\"auto, (max-width: 929px) 100vw, 929px\" \/><\/figure>\n\n\n\n<p>Running a query twice we see the same query that has the same <strong>SQL_ID <\/strong>to have a different <strong>PLAN_HASH_VALUE <\/strong>that is, a different plan.<\/p>\n\n\n\n<p>In case we don&#039;t know the SQL text but we have information about the session. Then you <a href=\"https:\/\/www.dataplatform.gr\/en\/pos-vriskoyme-grigora-ti-trechei-se-mia\/\">this article<\/a> we can see how through the systemic view <strong><a href=\"https:\/\/docs.oracle.com\/cd\/B19306_01\/server.102\/b14237\/dynviews_2088.htm#REFRN30223\" target=\"_blank\" rel=\"noreferrer noopener\">gv$session<\/a><\/strong> we will find it easily <strong>SQL_ID <\/strong>with the <strong>PLAN_HASH_VALUE <\/strong>who ran her every time.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"141\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-01-1024x141.png\" alt=\"\" class=\"wp-image-2447\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-01-1024x141.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-01-300x41.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-01-768x106.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-01.png 1273w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Before we start we need to download the script first <em>coe_xfr_sql_profile.sql<\/em>.<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-268b4882-4861-47fd-bb19-55b0a901b4cb\" href=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/coe_xfr_sql_profile.zip\">coe_xfr_sql_profile<\/a><a href=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/coe_xfr_sql_profile.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-268b4882-4861-47fd-bb19-55b0a901b4cb\">Download<\/a><\/div>\n\n\n\n<p>We transfer the script to a folder and execute it by putting it <strong>SQL_ID <\/strong>of and the <strong>PLAN_HASH_VALUE <\/strong>which we will want him to have forever from now on:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">@coe_xfr_sql_profile.sql 4wtpa4vzh8rpb 1851898411;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"661\" height=\"418\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-02.png\" alt=\"\" class=\"wp-image-2448\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-02.png 661w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-02-300x190.png 300w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><\/figure>\n\n\n\n<p>Then after we execute it, a new one will be created in the path where the script is located <em>coe_xfr_sql_profile_sql_id.sql<\/em>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"418\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-03.png\" alt=\"\" class=\"wp-image-2449\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-03.png 765w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-03-300x164.png 300w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/figure>\n\n\n\n<p>After we run this with sqlplus, the SQL Profile will be created:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">@coe_xfr_sql_profile_sql_id.sql<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"418\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-04.png\" alt=\"\" class=\"wp-image-2450\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-04.png 765w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-04-300x164.png 300w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/figure>\n\n\n\n<p>We can see that SQL Profile has been created by the view <em>dba_sql_profiles<\/em>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dba_sql_profiles where 1=1 \nand name like '%4wtpa4vzh8rpb%' --sqlID\n--and sql_text like '%h.LOGON_TIME%'  --SQL TEXT<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"136\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-05.png\" alt=\"\" class=\"wp-image-2451\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-05.png 784w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-05-300x52.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-05-768x133.png 768w\" sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/figure>\n\n\n\n<p>Now every time we execute the query it will run with the same plan.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"120\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-10-1024x120.png\" alt=\"\" class=\"wp-image-2461\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-10-1024x120.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-10-300x35.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-10-768x90.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-10.png 1170w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How can we see plan changes in query over time<\/h2>\n\n\n\n<p>With the following query we can see how many times the plan of a query was changed to which one and when:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">SELECT trunc(sample_time),h.session_id,h.SESSION_SERIAL#,h.sql_id, h.sql_plan_hash_value, SUM(10) ash_secs, 10*COUNT(h.sql_id) awr_secs,min(sample_time)\nFROM  dba_hist_snapshot X, dba_hist_active_sess_history h\nLEFT OUTER JOIN dba_hist_sqltext t ON t.sql_id = h.sql_id\nWHERE 1=1\nand h.sql_id='3c1kubcdjnppq'\nand x.snap_id=h.snap_id\n--and h.dbid=xxxxx\nand x.snap_id between (select max(snap_id) - 800 from dba_hist_snapshot) and (select max(snap_id) from dba_hist_snapshot)\nGROUP BY trunc(sample_time),h.session_id,h.SESSION_SERIAL#,h.sql_id, h.sql_plan_hash_value\norder by min(sample_time) desc;<\/pre>\n\n\n\n<p><em>* However, if we do not have Oracle DB enterprise edition but standard, we will not be able to find the information from historical views, so we can only see from memory <strong>library cache<\/strong> with the following query.<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select plan_hash_value,sql_id,timestamp from gv$sql_plan\nwhere SQL_ID='3c1kubcdjnppq'\norder by timestamp desc<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"611\" height=\"254\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-07.png\" alt=\"\" class=\"wp-image-2453\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-07.png 611w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-07-300x125.png 300w\" sizes=\"auto, (max-width: 611px) 100vw, 611px\" \/><\/figure>\n\n\n\n<p>We can see the entire SQL Statement by having the SQL_ID with the complete snapshots it ran:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">SELECT * from table(dbms_xplan.display_awr('3c1kubcdjnppq',null,null,'ADVANCED'));<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"496\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-08.png\" alt=\"\" class=\"wp-image-2454\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-08.png 593w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-08-300x251.png 300w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">To delete a bad shot from the SGA shared pool <\/h2>\n\n\n\n<p>In order to erase from the memory a bad plan from the SGA we should use the procedure <em>dbms_shared_pool.purge<\/em>.<\/p>\n\n\n\n<p>First we find the value we want to delete from the view <em>sqlarea<\/em>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select address, hash_value from gv$sqlarea where sql_id='4wtpa4vzh8rpb';<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"236\" height=\"158\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/fpo-06.png\" alt=\"\" class=\"wp-image-2464\"\/><\/figure>\n\n\n\n<p>Having the information we need, we can perform the following procedure:  <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">begin\nsys.DBMS_SHARED_POOL.purge('000000006AE41DF0,4278476459', 'C');\nend;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">To delete the SQL Profile<\/h2>\n\n\n\n<p>If we want to delete one of the SQL Profiles we have created, then we run the following filling in the corresponding name of the SQL Profile:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">begin\ndbms_sqltune.drop_sql_profile('coe_4wtpa4vzh8rpb_185189411');\nend;<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sources:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.oracle.com\/database\/121\/TGSQL\/tgsql_profiles.htm#TGSQL596\">Managing SQL Profiles<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/18\/tgsql\/improving-rwp-cursor-sharing.html#GUID-277432AA-CD1C-4A75-AB28-7358E63265B3\" target=\"_blank\" rel=\"noreferrer noopener\">Adaptive Cursor Sharing<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>In a previous article we saw why a query can run with a different plan and how to force one in SQL Server. In this article we will see how to force a plan in an Oracle database using SQL profile. Why the query can run with a different plan When the Query Optimizer [\u2026]<\/p>","protected":false},"author":1,"featured_media":704,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,16],"tags":[29,128,5,48],"class_list":["post-2446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-oracle-db","tag-databases","tag-force-plan","tag-oracle-database","tag-performance_tuning"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle - DataPlatform.gr<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle - DataPlatform.gr\" \/>\n<meta property=\"og:description\" content=\"\u03a3\u03b5 \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b5\u03af\u03c7\u03b1\u03bc\u03b5 \u03b4\u03b5\u03b9 \u03b3\u03b9\u03b1\u03c4\u03af \u03ad\u03bd\u03b1 query \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c4\u03c1\u03ad\u03c7\u03b5\u03b9 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03c0\u03bb\u03ac\u03bd\u03bf \u03ba\u03b1\u03b9 \u03c0\u03c9\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c3\u03c4\u03bf\u03bd SQL Server. \u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b8\u03b1 \u03b4\u03bf\u03cd\u03bc\u03b5 \u03c0\u03c9\u03c2 \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle \u03bc\u03b5 \u03c7\u03c1\u03ae\u03c3\u03b7 SQL profile. \u0393\u03b9\u03b1\u03c4\u03af \u03c4\u03bf query \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c4\u03c1\u03ad\u03c7\u03b5\u03b9 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03c0\u03bb\u03ac\u03bd\u03bf \u038c\u03c4\u03b1\u03bd \u03bf Query Optimizer [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/\" \/>\n<meta property=\"og:site_name\" content=\"DataPlatform.gr\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dataplatform.gr\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-22T04:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-11T18:33:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Stratos Matzouranis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stratos Matzouranis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/\"},\"author\":{\"name\":\"Stratos Matzouranis\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\"},\"headline\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle\",\"datePublished\":\"2020-12-22T04:00:00+00:00\",\"dateModified\":\"2024-09-11T18:33:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/\"},\"wordCount\":175,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"keywords\":[\"Databases\",\"Force Plan\",\"Oracle Database\",\"Performance Tuning\"],\"articleSection\":[\"Databases\",\"Oracle Database\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/\",\"name\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle - DataPlatform.gr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"datePublished\":\"2020-12-22T04:00:00+00:00\",\"dateModified\":\"2024-09-11T18:33:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Databases\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Oracle Database\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/oracle-db\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"name\":\"dataplatform.gr - Sky is not the limit!\",\"description\":\"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dataplatform.gr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\",\"name\":\"dataplatform.gr\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"width\":322,\"height\":139,\"caption\":\"dataplatform.gr\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dataplatform.gr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dataplatform-gr\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\",\"name\":\"Stratos Matzouranis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"caption\":\"Stratos Matzouranis\"},\"sameAs\":[\"https:\\\/\\\/www.dataplatform.gr\"],\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/en\\\/author\\\/stratos-matzouranis\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle - DataPlatform.gr","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/","og_locale":"en_US","og_type":"article","og_title":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle - DataPlatform.gr","og_description":"\u03a3\u03b5 \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b5\u03af\u03c7\u03b1\u03bc\u03b5 \u03b4\u03b5\u03b9 \u03b3\u03b9\u03b1\u03c4\u03af \u03ad\u03bd\u03b1 query \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c4\u03c1\u03ad\u03c7\u03b5\u03b9 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03c0\u03bb\u03ac\u03bd\u03bf \u03ba\u03b1\u03b9 \u03c0\u03c9\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c3\u03c4\u03bf\u03bd SQL Server. \u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b8\u03b1 \u03b4\u03bf\u03cd\u03bc\u03b5 \u03c0\u03c9\u03c2 \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle \u03bc\u03b5 \u03c7\u03c1\u03ae\u03c3\u03b7 SQL profile. \u0393\u03b9\u03b1\u03c4\u03af \u03c4\u03bf query \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c4\u03c1\u03ad\u03c7\u03b5\u03b9 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03c0\u03bb\u03ac\u03bd\u03bf \u038c\u03c4\u03b1\u03bd \u03bf Query Optimizer [&hellip;]","og_url":"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/","og_site_name":"DataPlatform.gr","article_publisher":"https:\/\/www.facebook.com\/dataplatform.gr\/","article_published_time":"2020-12-22T04:00:00+00:00","article_modified_time":"2024-09-11T18:33:49+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","type":"image\/png"}],"author":"Stratos Matzouranis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stratos Matzouranis","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/#article","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/"},"author":{"name":"Stratos Matzouranis","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf"},"headline":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle","datePublished":"2020-12-22T04:00:00+00:00","dateModified":"2024-09-11T18:33:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/"},"wordCount":175,"commentCount":2,"publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"image":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","keywords":["Databases","Force Plan","Oracle Database","Performance Tuning"],"articleSection":["Databases","Oracle Database"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/","url":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/","name":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle - DataPlatform.gr","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/#primaryimage"},"image":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","datePublished":"2020-12-22T04:00:00+00:00","dateModified":"2024-09-11T18:33:49+00:00","breadcrumb":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/#primaryimage","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-force-ena-plano-se-vasi-dedomen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae","item":"https:\/\/www.dataplatform.gr\/"},{"@type":"ListItem","position":2,"name":"Databases","item":"https:\/\/www.dataplatform.gr\/category\/databases\/"},{"@type":"ListItem","position":3,"name":"Oracle Database","item":"https:\/\/www.dataplatform.gr\/category\/databases\/oracle-db\/"},{"@type":"ListItem","position":4,"name":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03ad\u03bd\u03b1 \u03c0\u03bb\u03ac\u03bd\u03bf \u03c3\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c4\u03b7\u03c2 Oracle"}]},{"@type":"WebSite","@id":"https:\/\/www.dataplatform.gr\/#website","url":"https:\/\/www.dataplatform.gr\/","name":"dataplatform.gr - Sky is not the limit!","description":"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.","publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dataplatform.gr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dataplatform.gr\/#organization","name":"dataplatform.gr","url":"https:\/\/www.dataplatform.gr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","width":322,"height":139,"caption":"dataplatform.gr"},"image":{"@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dataplatform.gr\/","https:\/\/www.linkedin.com\/company\/dataplatform-gr\/"]},{"@type":"Person","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf","name":"Stratos Matzouranis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","caption":"Stratos Matzouranis"},"sameAs":["https:\/\/www.dataplatform.gr"],"url":"https:\/\/www.dataplatform.gr\/en\/author\/stratos-matzouranis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/2446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/comments?post=2446"}],"version-history":[{"count":1,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/2446\/revisions"}],"predecessor-version":[{"id":5813,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/2446\/revisions\/5813"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media\/704"}],"wp:attachment":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media?parent=2446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/categories?post=2446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/tags?post=2446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}