Vaste camera’s in de dubbele bodem van het zwembad filmen de zwemmers op ieder moment van hun training. — © Sebastian Steveniers

Om zwemmers naar betere prestaties te drijven, hebben wetenschappers in Eindhoven een speciaal bad ingericht. Met behulp van onderwatercamera’s en vingercondooms krijgen zwemmers meteen feedback op hun techniek.

Op het WK zwemmen in het Japanse Fukuoka verpulverde Léon Marchand (21) het vijftien jaar oude wereldrecord van Michael Phelps op de 400 meter wisselslag. De rest van de zwemwereld keek met open mond en camera in de hand toe. Woensdag won de Fransman zijn tweede gouden medaille, deze keer op de 200 meter vlinderslag. Marchand is nu het nieuwste voorbeeld dat de rest van de zwemwereld wil kopiëren. Maar voor de bewegingswetenschappers van InnoSportLab in Eindhoven geldt een andere filosofie.

‘We krijgen vaak zwemmers die zeggen: ik kopieer de start van Caeleb Dressel want die is heel snel’, zegt bewegingswetenschapper Sander Schreven. ‘Maar Dressel springt 60 centimeter hoog uit stand. Een andere zwemmer moet niet kopiëren wat Dressel doet, want dan moet die ook60 centimeter hoog kunnen springen. Het doel is om op basis van data de goede keuzes te maken, en niet omdat iedereen het zo doet.’

 Naast het trainingsbad, in een klein, heet kantoor, komen de wetenschappers van InnoSportLab dagelijks samen om de Nederlandse zwemmers te begeleiden— © Sebastian Steveniers

De wetenschappers van het lab zijn iedere dag te vinden in het gigantische Eindhovense zwemstadion. Naast het trainingsbad, in een klein, heet kantoor bomvol materiaal, zitten de dertien werknemers in functie van de Nederlandse zwembond. Dat de zwemmers kunnen genieten van dagelijkse begeleiding, is vrij uniek in de zwemwereld.

‘Wanneer de Ieren of de Britten naar hier komen, dan zijn ze jaloers. In het lab ligt voor minstens een miljoen euro aan materiaal’, aldus directeur Ronald van der Vliet. ‘Er zijn best veel landen die van alles meten, maar dat is dan zo eenvoudig dat je het geen wetenschap kan noemen. Dan meten ze bijvoorbeeld de frequentie van de slagen. Geweldig, dat doen ze al dertig jaar! Niet veel landen zijn zoals ons bezig met zelf technologie te ontwikkelen.’

Ideale techniek bestaat niet

 

Sander Schreven is het creatieve brein achter het lab. Hij ontwikkelde een dubbele bodem in het zwembad, waar zes vaste camera’s zijn ingebouwd. Zo kunnen ze op ieder moment van de training de zwemmers filmen. ‘Toen wij hiermee begonnen, moesten we een camera met een zuignap aan de bodem vastkleven. Dat duurde drie tot vier uur om klaar te zetten. Nu kunnen we op ieder moment op de knop duwen.’

Het vingercondoom: een kleine batterij met ledlicht en plastieken mutsje. — © Sebastian Steveniers

Vervolgens hebben de doctoraatsstudenten van het lab vier weken lang onderzoek gedaan naar de perfecte manier om de onderwaterbewegingen van de zwemmers te volgen, zonder dat er te veel invloed is van weerstand in het water. Dat is gelukt met behulp van een kleine batterij, een ledlicht – eigenlijk een ‘magic light’ dat normaal terug te vinden is in een lichtgevende duim, gebruikt voor goocheltrucs – en een plastieken mutsje.

Het resultaat: het zogenoemde vingercondoom. ‘We zijn teruggegaan naar iets simpels, zodat je het makkelijk op training kan gebruiken’, zegt bewegingswetenschapper Carlo van der Heijden. Hij voert de analyses uit tijdens de trainingen en reist mee naar de grote toernooien. Met het ledlampje op de middelste vingertop kan hij precies de slagen van de zwemmers in kaart brengen.

Per zwemmer proberen de wetenschappers uit te vissen wat de beste techniek is. Volgens Schreven bestaat ‘de ideale techniek’ dus niet. ‘Je hebt algemeenheden en daarnaast probeer je individueel te optimaliseren. Je hebt, bijvoorbeeld, mensen die explosief zijn, zoals Dressel, of mensen met een sterk bovenlijf en zwakkere benen.’

Bewegingswetenschapper Carlo van der Heijden helpt de zwemcoaches om de resultaten te analyseren en hij reist ook mee naar de internationale toernooien. — © Sebastian Steveniers

Schreven heeft ook de verwerkingstijd van zijn programma kunnen verbeteren. ‘Twee jaar geleden deden we ongeveer anderhalf uur over het analyseren van een slag. Nu hebben we tien minuten tot een kwartier later de uitslag van de beweging.’ De zwemmers krijgen dus meteen feedback over hun techniek tijdens hun training. Bij de volgende meting kunnen de wetenschappers zien of de aanpassing een verschil heeft gemaakt.

Oude gewoontes

Is het dan wel zo makkelijk voor zwemmers om hun techniek zomaar aan te passen? We zeggen al eens ‘oefening baart kunst’, maar hoofdonderzoeker professor Peter Beek, gespecialiseerd in motorisch leren, zegt net ‘oefening maakt permanent’. Hoe meer je iets foutief oefent, hoe permanenter het in je systeem zit en hoe moeilijker het is om te veranderen.

‘Het is uitzoeken of ze de aanpassingen kunnen volhouden, niet alleen op training maar ook tijdens de wedstrijd. Met die lampjes op hun vingertoppen doen ze het hartstikke goed, omdat ze weten dat we aan het kijken zijn’, aldus Schreven. ‘De vraag is of ze hervallen in hun oude ­gewoontes tijdens de finale van de Olympische Spelen.’

Een voorbeeld van de manier waarop de bewegingswetenschappers een start analyseren. Een andere afzethoek bij de start kan twee tienden verschil uitmaken op de starttijd. In de zwemsport is dat veel.
 

Op het WK in Japan hebben de Nederlanders tot nu toe één zilveren medaille gehaald, met Arno Kamminga op de 100 meter schoolslag. Maar misschien belangrijker: de Nederlanders hebben, in tegenstelling tot de Belgen, al vijf finaleplaatsen behaald.

De Friese Marrit Steenbergen, die iedere dag in Eindhoven te vinden is, zwom naar een zevende plaats op de 200 meter wisselslag en naar de vijfde plek op de 200 meter vrije slag in een nieuw persoonlijk record. Het Nederlandse aflossingsteam behaalde op de 4x100 meter vrije slag een zesde plaats, op de 4x100 meter wisselslag werden ze vierde. Een indrukwekkende prestatie van de Nederlanders, tussen grootmachten zoals de Verenigde Staten, Groot-Brittannië, Australië en China.

 Ik zou zeggen, Rik, er is nog werk aan de winkel in Leuven....

 


Eventuele reacties, vragen, opmerkingen kan je steeds sturen naar Hans ( hansspe@gmail.com )

Deze worden hieronder geplaatst:

1.

3.379MBMemory Usage63.16msRequest Duration
Joomla! Version5.1.2
PHP Version8.1.2
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.4.34-MariaDB-1:10.4.34+maria~deb10
Collation
utf8mb4_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:59 [ "PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "TEMP" => "/...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1744319425 "last" => 1744319425...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (74.44KB) (1.49ms)
  • afterInitialise (1.25MB) (14.73ms)
  • afterRoute (96.41KB) (8.41ms)
  • beforeRenderComponent com_content (98.55KB) (1.76ms)
  • Before Access::preloadComponents (all components) (35.31KB) (494μs)
  • After Access::preloadComponents (all components) (111.84KB) (347μs)
  • Before Access::preloadPermissions (com_content) (2.76KB) (13μs)
  • After Access::preloadPermissions (com_content) (190.33KB) (468μs)
  • Before Access::getAssetRules (id:305 name:com_content.article.229) (18.8KB) (18μs)
  • After Access::getAssetRules (id:305 name:com_content.article.229) (8.47KB) (42μs)
  • afterRenderComponent com_content (790.91KB) (19.84ms)
  • afterDispatch (2.28KB) (96μs)
  • beforeRenderRawModule mod_menu (Keuzemenu) (45.88KB) (1.37ms)
  • afterRenderRawModule mod_menu (Keuzemenu) (126.69KB) (1.97ms)
  • beforeRenderRawModule mod_breadcrumbs (Breadcrumbs) (7.05KB) (261μs)
  • afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (12.15KB) (656μs)
  • beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (5μs)
  • afterRenderModule mod_breadcrumbs (Breadcrumbs) (4.98KB) (255μs)
  • beforeRenderModule mod_menu (Keuzemenu) (1.18KB) (110μs)
  • afterRenderModule mod_menu (Keuzemenu) (3.88KB) (198μs)
  • afterRender (184.38KB) (10.06ms)
  • 1 x afterRenderComponent com_content (790.91KB) (31.41%)
    19.84ms
    1 x afterInitialise (1.25MB) (23.33%)
    14.73ms
    1 x afterRender (184.38KB) (15.93%)
    10.06ms
    1 x afterRoute (96.41KB) (13.31%)
    8.41ms
    1 x afterRenderRawModule mod_menu (Keuzemenu) (126.69KB) (3.11%)
    1.97ms
    1 x beforeRenderComponent com_content (98.55KB) (2.79%)
    1.76ms
    1 x afterLoad (74.44KB) (2.36%)
    1.49ms
    1 x beforeRenderRawModule mod_menu (Keuzemenu) (45.88KB) (2.17%)
    1.37ms
    1 x afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (12.15KB) (1.04%)
    656μs
    1 x Before Access::preloadComponents (all components) (35.31KB) (0.78%)
    494μs
    1 x After Access::preloadPermissions (com_content) (190.33KB) (0.74%)
    468μs
    1 x After Access::preloadComponents (all components) (111.84KB) (0.55%)
    347μs
    1 x beforeRenderRawModule mod_breadcrumbs (Breadcrumbs) (7.05KB) (0.41%)
    261μs
    1 x afterRenderModule mod_breadcrumbs (Breadcrumbs) (4.98KB) (0.4%)
    255μs
    1 x afterRenderModule mod_menu (Keuzemenu) (3.88KB) (0.31%)
    198μs
    1 x beforeRenderModule mod_menu (Keuzemenu) (1.18KB) (0.17%)
    110μs
    1 x afterDispatch (2.28KB) (0.15%)
    96μs
    1 x After Access::getAssetRules (id:305 name:com_content.article.229) (8.47KB) (0.07%)
    42μs
    1 x Before Access::getAssetRules (id:305 name:com_content.article.229) (18.8KB) (0.03%)
    18μs
    1 x Before Access::preloadPermissions (com_content) (2.76KB) (0.02%)
    13μs
    1 x beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (0.01%)
    5μs
28 statements were executed, 5 of which were duplicates, 23 unique11.77ms151.91KB
  • SELECT @@SESSION.sql_mode;61μs1.57KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:308Copy
  • SELECT `data` FROM `vzym7_session` WHERE `session_id` = ?296μs1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `vzym7_session` WHERE `session_id` = :session_id LIMIT 1107μs1.61KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `vzym7_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)1.63ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `vzym7_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 158μs2.23KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `vzym7_viewlevels`31μs976B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `vzym7_usergroups` AS `a` LEFT JOIN `vzym7_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest40μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `vzym7_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`65μs4.3KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `vzym7_menu` AS `m` LEFT JOIN `vzym7_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`591μs5.92KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vzym7_categories` AS `s` INNER JOIN `vzym7_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`2.81ms5.11KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT * FROM `vzym7_languages` WHERE `published` = 1 ORDER BY `ordering` ASC45μs2.22KB/libraries/src/Language/LanguageHelper.php:177Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `vzym7_template_styles` AS `s` LEFT JOIN `vzym7_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 140μs1.14KB/administrator/components/com_templates/src/Model/StyleModel.php:775Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `vzym7_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)86μs7.75KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `vzym7_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 066μs25.8KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `vzym7_content`394μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `vzym7_content` SET `hits` = (`hits` + 1) WHERE `id` = '229'1.06ms48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `vzym7_content` AS `a` INNER JOIN `vzym7_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `vzym7_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `vzym7_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `vzym7_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `vzym7_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)378μs27.13KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vzym7_categories` AS `s` INNER JOIN `vzym7_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`309μs5.16KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `vzym7_contentitem_tag_map` AS `m` INNER JOIN `vzym7_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)247μs5.22KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vzym7_categories` AS `s` INNER JOIN `vzym7_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`94μs5.16KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM vzym7_fields AS a LEFT JOIN `vzym7_languages` AS l ON l.lang_code = a.language LEFT JOIN vzym7_users AS uc ON uc.id=a.checked_out LEFT JOIN vzym7_viewlevels AS ag ON ag.id = a.access LEFT JOIN vzym7_users AS ua ON ua.id = a.created_user_id LEFT JOIN vzym7_fields_groups AS g ON g.id = a.group_id LEFT JOIN `vzym7_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC99μs6KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vzym7_categories` AS `s` INNER JOIN `vzym7_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`137μs5.16KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `vzym7_modules` AS `m` LEFT JOIN `vzym7_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `vzym7_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`61μs2.16KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT * FROM `vzym7_schemaorg` WHERE `itemId` = :itemId AND `context` = :context262μs1.86KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:411Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `vzym7_content` AS `a` INNER JOIN `vzym7_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `vzym7_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `vzym7_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `vzym7_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `vzym7_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)146μs24.67KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `vzym7_scheduler_tasks` AS `a` WHERE `a`.`state` = 1199μs1.68KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `vzym7_session` WHERE `session_id` = ?206μs1.63KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `vzym7_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?2.26ms912BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy