index , virtual , invisible

本文探讨了如何通过创建虚拟索引来改进SQL执行计划,并利用dbms_stats.generate_stats收集统计信息来进一步优化查询效率。此外,还介绍了invisible index的用法及应用场景。

http://yumianfeilong.com/html/2010/04/10/427.html

建立虚拟索引后,可以使用dbms_stats.generate_stats收集该虚拟索引的统计信息,以便更好的帮助CBO判断。

dbms_stats.gather_index_stats无法分析virtual index。

CREATE INDEX INDEX_NAME
ON TABLE_NAME (INDEX_COLUMN)
NOSEGMENT;

invisible index 确实应该是用来解决virtual index无法解决的问题的, 但不完全是..

比如可以直接将某个index 改为invisible就可以避免系统使用一个已有索引, 这在由个别索引导致执行计划出问题时也是很有帮助的..

设计高效SQL: 一种视觉的方法

http://www.itpub.net/thread-1357925-1-1.html

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/350519/viewspace-1040414/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/350519/viewspace-1040414/

syntax = "proto2"; import "modules/msg/basic_msgs/header.proto"; import "modules/msg/basic_msgs/geometry.proto"; package byd.msg.orin.routing_map; message EnvStatus { enum MapSuppressionReason { NOT_SUPPRESSION = 0; CLOSE_TO_HIGH_LEVEL_ROAD = 1; NO_NAVIGATION_START_SECTION = 2; NO_HD_MAP_FRAME = 3; EGO_IS_CHANGING_LANE = 11; EGO_PASSED_JUNCTION = 12; EGO_IN_JUNCTION = 13; EGO_NOT_CLOSE_ENOUGH_TO_JUNCTION = 14; EGO_OUTSIDE_MAP = 15; EGO_NOT_IN_THE_RAMP = 16; EGO_IN_THE_RAMP = 17; UNABLE_TO_MATCH_PERCEPTION_WITH_HD_MAP = 31; UNKNOWN_REASON = 101; } enum EnvSource { UNDEFINED = 0; PERCEPTION_MAP = 1; HD_MAP = 2; BYD_CROWD_SOURCED_MAP = 3; } message LineMatchInfo { optional double average_offset = 1; optional double max_offset = 2; } optional bool is_on_freeway = 1; optional EnvSource map_source = 2; optional MapSuppressionReason hd_map_suppression_reason = 3; optional MapSuppressionReason perception_map_suppression_reason = 4; optional double distance_to_next_junction = 5; optional double distance_to_passed_junction = 6; optional LineMatchInfo left_laneline_match_info = 7; optional LineMatchInfo right_laneline_match_info = 8; } message MapInfo { enum CoordSys { WGS84 = 0; GCJ02 = 1; RFU = 2; FLU = 3; } optional CoordSys coord_sys = 1; optional string map_version = 2; optional string engine_version = 3; optional string sdmap_version = 4; optional EnvStatus env_status = 5; } enum LightStatus { NONE_LIGHT = 0; //无信号灯 GREEN_LIGHT = 1; YELLOW_LIGHT = 2; RED_LIGHT = 3; UNKNOWN_LIGHT = 4; //有信号灯状态未知 YELLOW_BLINKING = 5; FAIL_DETECTION = 6; BLOCK_FAIL = 7; GREEN_BLINKING = 8; BLURRING_MODE = 9; } enum NoneOddType { NODD_NONE = 0; NORMAL_NOT_ODD = 1; NODD_LOW_PRECISION = 22; NODD_LANE_BOUNDARY_CHANGE = 100; NODD_LANE_BOUNDARY_LOSS_WIDTH_ABNORMAL = 101; NODD_LANE_NUM_INCREASE = 102; NODD_LANE_NUM_DECREASE = 103; NODD_LANE_TYPE_CHANGE = 104; NODD_CONSTRUCTION_OPPOSITE_DIR_BORROW_WAY_NOT_DEGRADATION = 105; NODD_CONSTRUCTION_OPPOSITE_DIR_BORROW_WAY_DEGRADATION = 106; NODD_CONSTRUCTION_SAME_DIR_CHANGE_WAY_NOT_DEGRADATION = 107; NODD_CONSTRUCTION_SAME_DIR_CHANGE_WAY_DEGRADATION = 108; NODD_CONSTRUCTION_CLOSE_WAY = 109; NODD_CONSTRUCTION_CLOSE_WAY_TO_NOT_HIGHWAY_DEGRADATION = 110; NODD_RAMP_INCREASE = 111; NODD_TRAFFIC_CONE = 112; NODD_WATER_SAFETY_BARRIER = 113; NODD_UNKNOWN = 255; } enum PointSource { PS_UNKNOWN = 0; PS_BEV = 1; // 感知形点 TOPO_INSETRT = 2; // 拓扑插值点 SECTION_EXTENTED_FROM_LANEMARKER = 3; // lane使用lanemarker补齐 SECTION_EXTENTED_FROM_FIT = 4; // lane lanemarker使用自身点拟合重采样补齐 SECTION_EXTENTED_FROM_LANE = 5; // lanemarker使用lane点补齐 PS_HDMAP = 6; // 地图形点 PS_INVISIBLE = 7; // 感知不可见点 } message Point { optional double x = 1; optional double y = 2; optional double z = 3; optional double curvature = 4; optional PointSource point_source = 5; optional double mse = 6; // set value when BEV Map used } message Trajectory{ optional uint64 id = 1; optional uint64 lane_id = 2; optional uint64 start_lane_id = 3; optional uint64 end_lane_id = 4; repeated uint64 relative_lane_id = 5; repeated Point points = 6; } message LaneInfo { enum LaneType { LANE_UNKNOWN = 0; LANE_NORMAL = 1; LANE_ACC = 2; LANE_DEC = 3; LANE_RAMP = 4; LANE_EMERGENCY = 5; LANE_ACC_DCC = 6; LANE_BUS_NORMAL = 7; // 公交停靠站 LANE_HOV_NORMAL = 8; LANE_NON_MOTOR = 9; LANE_LEFT_WAIT = 10; LANE_VIRTUAL_COMMON = 11; LANE_VIRTUAL_JUNCTION = 12; LANE_ROUND_ABOUT = 13; LANE_REVERSIBLE = 16; LANE_VARIABLE_TURN = 17; LANE_HARBOR_STOP = 18; // 港湾停靠站 LANE_ENTRY = 19; // 入口 LANE_EXIT = 20; // 出口 LANE_DIVERSION = 21; // 导流区车道 LANE_U_TURN_LANE = 22; // 掉头车道 LANE_RIGHT_TURN_LANE = 23; // 右转专用车道 LANE_RIGHT_TURN_AREA = 24; // 右转等待车道 LANE_U_TURN_AREA = 25; // 掉头等待车道 LANE_NO_TURN_AREA = 26; // 直行等待车道 LANE_VIRTUAL_CONNECTED_LANE = 27; // 虚拟连接车道 LANE_PARKING = 28; // 停车车道 LANE_TOLLBOOTH = 29; // 收费站车道 LANE_OBSTACLE = 30; // 障碍物 LANE_MIXED_TOLL = 31; // 混合收费车道 LANE_REVERSIBLE_CONNECTION_LANE = 32; //潮汐连接路 LANE_ENTRANCE_OR_EXIT_LANE = 33; //主辅路出入口 LANE_LEFT_TURN_LANE = 34; //左转专用道 LANE_CHECKPOINT_LANE = 35; //检查站车道 LANE_USE_THE_LEFT_TURN_LANE = 36; //借道左转车道 LANE_BRT = 37; //公交专用道 } enum TurnType { NO_TURN = 0; LEFT_TURN = 1; RIGHT_TURN = 2; U_TURN = 3; STRAIGHT_AND_LEFT_TURN = 4; STRAIGHT_AND_RIGHT_TURN = 5; STRAIGHT_AND_U_TURN = 6; LEFT_TURN_AND_U_TURN = 7; RIGHT_TURN_AND_U_TURN = 8; STRAIGHT_AND_LEFT_TURN_AND_RIGHT_TURN = 9; LEFT_TURN_AND_RIGHT_TURN = 10; STRAIGHT_AND_LEFT_TURN_AND_U_TURN = 11; STRAIGHT_AND_RIGHT_TURN_AND_U_TURN = 12; LEFT_TURN_AND_RIGHT_TURN_AND_U_TURN = 13; STRAIGHT_AND_LEFT_AND_RIGHT_AND_U_TURN = 14; OTHER_UNKNOWN = 9999; } enum SplitTopology { TOPOLOGY_SPLIT_NONE = 0; TOPOLOGY_SPLIT_LEFT = 1; // split to left TOPOLOGY_SPLIT_RIGHT = 2; // split to right TOPOLOGY_SPLIT_UNKNOWN = 3; } enum MergeTopology { TOPOLOGY_MERGE_NONE = 0; TOPOLOGY_MERGE_LEFT = 1; // merge to left, ego is on right of target lane TOPOLOGY_MERGE_RIGHT = 2; // merge to right, ego is on left of target lane TOPOLOGY_TO_BE_MERGED = 3; TOPOLOGY_MERGE_UNKNOWN = 4; } enum MergeSource { MERGE_UNKNOWN = 0; MERGE_BEV = 1; MERGE_LD = 2; MERGE_SD = 3; } enum TrafficSetReason{ UNKNOWN_STATE = 0; STAY_PREV = 1; SET_DEFAULT_OBJ = 2; NEW_ARROW_LIGHT = 3; NEW_CIRCLE_LIGHT = 4; NEW_UNKNOWN_GREEN = 5; NEW_UNKNOWN_OTHER = 6; NEW_BLURRING_COLOR = 7; NEW_BLURRING_SHAPE = 8; } message MergeInfo { optional bool merge_valid = 1; optional MergeSource merge_source = 2; optional double dis_to_merge = 3; }; optional uint64 id = 1; optional uint64 section_id = 2; optional uint64 junction_id = 3; optional uint64 left_lane_id = 4; optional uint64 right_lane_id = 5; repeated uint64 next_lane_ids = 6; repeated uint64 left_lane_boundary_ids = 7; repeated uint64 right_lane_boundary_ids = 8; repeated uint64 left_road_boundary_ids = 9; repeated uint64 right_road_boundary_ids = 10; optional LaneType type = 11; optional NoneOddType none_odd_type = 12; optional TurnType turn_type = 13; // vaild in city region optional LightStatus light_status = 14; optional SplitTopology split_topology = 15; optional MergeTopology merge_topology = 16; repeated Point points = 17; // hasn't supported lane level curvature yet optional double length = 18; optional double speed_limit = 19; // uint: m/s optional bool is_virtual = 20; repeated uint64 cross_walks = 21; repeated uint64 traffic_stop_lines = 22; optional uint32 light_countdown = 23; repeated uint64 previous_lane_ids = 24; optional MergeInfo merge_info = 25; optional uint32 connect_score = 26; // score of classification as normal and split, ranging from 0 to 100 optional TurnType plan_turn_type = 27; optional bool is_blocked = 28; optional uint32 traffic_light_obj_id = 29; optional uint32 traffic_light_seq_num = 30; optional TrafficSetReason traffic_set_reason = 31; optional uint32 stay_prev_counter = 32; repeated uint64 exp_trajectory_ids = 33; optional bool cnoa_is_virtual = 34; // same as cnoa map is_virtual value, add to solve problem form SR optional uint32 lane_seq = 35; //车道序号,从左到右从1开始递增 optional uint32 stopline_angle_flag = 36; } message LaneBoundaryInfo { enum LineType { UNKNOWN = 0; SOLID = 1; DASHED = 2; SOLID_SOLID = 3; DASHED_DASHED = 4; SOLID_DASHED = 5; DASHED_SOLID = 6; VIRTUAL_LANE = 7; OTHERS = 9999; } enum LaneMarkerColor { LM_COLOR_UNKNOWN = 0; LM_COLOR_WHITE = 1; LM_COLOR_YELLOW = 2; LM_COLOR_BLUE = 3; LM_COLOR_GREEN = 4; LM_COLOR_RED = 5; } message ColorSegment { optional LaneMarkerColor color = 1; optional uint32 start_index = 2; optional uint32 end_index = 3; }; message TypeSegment { optional LineType type = 1; optional uint32 start_index = 2; optional uint32 end_index = 3; }; optional uint64 id = 1; repeated byd.msg.basic.Point2D points = 2; optional LineType line_type = 3; repeated ColorSegment color_seg = 4; repeated TypeSegment type_seg = 5; repeated Point line_points = 6; } message RoadBoundaryInfo { enum BoundaryType { UNKNOWN_BOUNDARY = 0; FLAT_BOUNDARY = 1; LOW_BOUNDARY = 2; HIGH_BOUNDARY = 3; FENCE_BOUNDARY = 4; VIRTUAL = 12; } optional uint64 id = 1; repeated byd.msg.basic.Point2D points = 2; optional BoundaryType boundary_type = 3; repeated Point line_points = 4; } message JunctionInfo { optional uint64 id = 1; repeated byd.msg.basic.Point2D points = 2; } message CrossWalkInfo { optional uint64 id = 1; repeated byd.msg.basic.Point2D points = 2; } message StopLineInfo { optional uint64 id = 1; repeated byd.msg.basic.Point2D points = 2; optional uint32 type = 3; //type: 0 - real stopline, 1 - virtual stopline } message TrafficLightInfo { optional uint64 id = 1; optional byd.msg.basic.Point3D center_position = 2; repeated byd.msg.basic.Point3D bounding_box_geometry = 3; repeated uint64 laneids = 4; optional uint32 light_countdown = 5; optional uint32 shape = 6; optional LightStatus light_status = 7; } message NaviPosition { optional uint64 section_id = 1; optional double s_offset = 2; //uint: m } message SectionInfo { enum LDLinkTypeMask { LT_NORMAL = 0; // 0X00000000, // 普通 LT_TUNNEL = 1; // 0X00000001, // 隧道 LT_BRIDGE = 2; // 0X00000002, // 桥 LT_TOLLBOOTH = 4; // 0X00000004, // 收费站道路 LT_DEAD_END = 8; // 0X00000008, // 断头路 LT_IC = 16; // 0X00000010, // IC(高速连接普通路的道路) LT_JCT = 32; // 0X00000020, // JCT(高速连接高速的道路) LT_SAPA = 64; // 0X00000040, // SAPA(服务器、停车区道路) LT_WITHIN_INTERSECTION = 128; // 0X00000080, // 路口内道路 LT_AUTHORIZED = 256; // 0X00000100, // 授权道路 LT_TOLLGATE = 512; // 0X00000200, // 收费岛道路 LT_ABANDONED_TOLLGATE = 1024;// 0X00000400, // 废弃收费岛道路 LT_CHECKPOINT = 2048;// 0X00000800, // 检查站道路 LT_ROUNDABOUT = 4096;// 0X00001000, // 环岛内道路 LT_SERRATED = 8192;// 0X00002000, // 锯齿道路 LT_MAIN_ROAD = 16384;// 0X00004000, // 主路(main road) LT_SIDE_ROAD = 32768; // 0X00008000, // 辅路(side road) LT_MAINROAD_CONNECTION = 65536;// 0X00010000, // 主辅路连接路(mainside connection) LT_NO_S_INTERSECTION = 131072;// 0X00020000, // 无小路口 LT_S_INTERSECTION_LEFT = 262144;// 0X00040000, // 小路口左侧道路 LT_S_INTERSECTION_RIGHT= 524288;//0X00080000, // 小路口右侧道路 LT_S_INTERSECTION_BOTH = 1048576; //0X00100000, // 小路口两侧道路 LT_INJUNCTION = 2097152; //0X00200000, // 路口内道路(编译计算) LT_BOOTH_EXIT = 4194304;//0X00400000, // 出口收费站 LT_BOOTH_ENTRANCE = 8388608;//0X00800000, // 入口收费站 LT_BOOTH_EXIT_ENTRANCE = 16777216;//0X01000000 // 出入口收费站 } optional uint64 id = 1; optional double length = 2; //uint: m repeated uint64 lane_ids = 3; repeated Point points = 4; optional RoadClass road_class = 5; repeated uint64 predecessor_section_id_list = 6; repeated uint64 successor_section_id_list = 7; optional uint32 link_type = 8; //复合类型,与LdLinkTypeMask“按位与”操作判断。 } message ArrowInfo { enum ArrowType { RM_TYPE_STRAIGHT = 1; RM_TYPE_LEFT = 2; RM_TYPE_RIGHT = 3; RM_TYPE_TURNING = 4; RM_TYPE_STRAIGHT_LEFT = 5; RM_TYPE_STRAIGHT_RIGHT = 6; RM_TYPE_STRAIGHT_LEFT_RIGHT = 7; RM_TYPE_LEFT_RIGHT = 8; RM_TYPE_STRAIGHT_TURNING = 9; RM_TYPE_LEFT_TURNING = 10; } optional uint64 id = 1; optional ArrowType type = 2; optional byd.msg.basic.Point3D center_position = 3; repeated byd.msg.basic.Point3D bounding_box_geometry = 4; repeated uint64 lane_id = 5; } message SubPath { optional uint64 enter_section_id = 1; repeated SectionInfo sections = 2; } message RouteInfo { optional uint64 id = 1; optional NaviPosition navi_start = 2; //from currrent section repeated SectionInfo sections = 3; repeated SubPath subpaths = 4; optional string route_id = 5; //ld导航路径的md5值 } enum RoadClass { UNKNOWN = 0; EXPRESSWAY = 1; URBAN_EXPRESSWAY = 2; NATION_ROAD = 3; PROVINCE_ROAD = 4; COUNTRY_ROAD = 6; TOWN_ROAD = 7; SPECIAL_ROAD = 8; // 特服道路 WALK_ROAD = 9; PEOPLE_FERRY = 10; // 人渡 FERRY = 11; // 轮渡 OTHERS = 99; } enum V2RoadClassType { UNKNOWN_ROAD = 0; HIGH_WAY_ROAD = 1; EXPRESS_WAY_ROAD = 2; NATIOANL_ROAD = 3; PROVINCIAL_ROAD = 4; MAIN_ROAD = 5; SUB_ROAD = 6; } enum SDRoadClass { SD_HIGHWAY = 0; SD_CITY_FAST_WAY = 1; SD_NATIONAL_ROAD = 2; SD_PROVINCIAL_ROAD = 3; SD_COUNTY_ROAD = 4; SD_TOWNSHIP_ROAD = 5; SD_OTHER_ROAD = 6; SD_LEVEL_9_ROAD = 7; SD_FERRY = 8; SD_WALY_WAY = 9; SD_INVALID = 127; } message V2RoadClass { optional double start = 1; optional double end = 2; optional V2RoadClassType road_class = 3; } message V2RoadInfo { optional V2RoadClassType road_class = 1; optional int32 lane_num = 2; } message V2TurnInfo { optional uint64 id = 1; optional bool is_valid = 2; enum V2TurnType { UNKNOWN = 0; LEFT = 1; RIGHT = 2; STRAIGHT = 3; U_TURN_LEFT = 4; U_TURN_RIGHT = 5; MERGE_LEFT = 6; MERGE_RIGHT = 7; RAMP_LEFT = 11; RAMP_RIGHT = 12; RAMP_STRAIGHT = 13; RAMP_U_TURN_LEFT = 14; RAMP_U_TURN_RIGHT = 15; } optional V2TurnType turn_type = 3; enum V2DetailTurnType { NONE = 0; TURN_LEFT = 2; // 左转图标 TURN_RIGHT = 3; // 右转图标 SLIGHT_LEFT = 4; // 左前方图标 SLIGHT_RIGHT = 5; // 右前方图标 TURN_HARD_LEFT = 6; // 左后方图标 TURN_HARD_RIGHT = 7; // 右后方图标 UTURN = 8; // 左转掉头图标 (无在线图标) CONTINUE = 9; // 直行图标 TURN_RIGHT_ONLY = 10; // 右转专用道 UTURN_RIGHT = 19; // 右转掉头图标,左侧通行地区的掉头 LEFT_MERGE = 65; // 靠左图标 RIGHT_MERGE = 66; // 靠右图标 } optional V2DetailTurnType detail_turn_type = 4; optional double dist = 5; optional V2RoadInfo before_turn = 6; optional V2RoadInfo after_turn = 7; optional double v2_dist = 8; // V2提供的距离,新增加 } message NonODDInfo { optional string id = 1; optional uint64 reason = 2; optional double dist = 3; } message V2Curvature { optional double curvature = 1; // 曲率半径 optional double distance = 2; // 距离 } message V2TrafficFlow { optional double start_s = 1; optional double end_s = 2; enum V2TrafficFlowType { UNKNOWN_FLOW = 0; SMOOTH_FLOW = 1; SLOW_FLOW = 2; JAMMED_FLOW = 3; SEVERE_JAMMED_FLOW = 4; NO_FLOW = 5; } optional V2TrafficFlowType type = 3; } message EnvInfo { optional bool v2_valid = 1; optional bool v2_has_navigation = 2; optional double v2_dist_to_ramp = 3; optional double v2_dist_to_toll = 4; optional double v2_dist_to_tunnel = 5; repeated V2RoadClass v2_road_classes = 6; repeated V2TurnInfo v2_turn_info = 7; optional double dist_to_subpath = 8; optional double dist_to_split_routelanenum_dec = 9; repeated V2TrafficFlow traffic_flows = 10; repeated V2Curvature v2_curvatures = 11; repeated NonODDInfo v2_non_odd_info = 12; } message SDSectionInfo { enum SDLinkTypeMask { SDLT_INVALID = 0; SDLT_RING = 1; //环岛 0X00000001 SDLT_NOATTR = 2; //无属性 0X00000002 SDLT_MAINSEPARATE = 4; //上下行分离 0X00000004 SDLT_JCT = 8; //JCT 0X00000008 SDLT_CROSSLINK = 16; //交叉点内LINK 0X00000010 SDLT_IC = 32; //IC 0X00000020 SDLT_PARK = 64; //停车区 0X00000040 SDLT_SERVICE = 128; //服务区 0X00000080 SDLT_BRIDGE = 256; //桥 0X00000100 SDLT_WALKSTREET = 512; //步行街 0X00000200 SDLT_SIDEROAD = 1024; //辅路 0X00000400 SDLT_RAMP = 2048; //匝道 0X00000800 SDLT_CLOSEDROAD = 4096; //全封闭道路 0X00001000 SDLT_UNDEFINEDTRAFFICAREA = 8192; //未定义交通区域 0X00002000 SDLT_POICONNECTION = 16384; //连接路 0X00004000 SDLT_TUNNEL = 32768; //隧道 0X00008000 SDLT_RA_FOOTWAY = 65536; //步行道 0X00010000 SDLT_BUS = 131072; //公交专用道 0X00020000 SDLT_RIGHTTURN = 262144; //提前右转 0X00040000 SDLT_SCENICROAD = 524288; //风景线路 0X00080000 SDLT_INAREAROAD = 1048576; //区域内道路 0X00100000 SDLT_LEFTTURN = 2097152; //提前左转 0X00200000 SDLT_UTURN = 4194304; //掉头口 0X00400000 SDLT_MAINSIDECONNECT = 8388608; //主辅路出入口 0X00800000 SDLT_DUMMYLINK = 16777216; //虚拟链接路 0X01000000 SDLT_PARKLINK = 33554432; //停车位引导路 0X02000000 } enum SDDirectionType { UNKNOWN = 0; //未知 BIDIRECTIONAL_PASSABLE = 1; //双向可通行 FORWARD_ONLY = 2; //仅正向通行 REVERSE_ONLY = 3; //仅反向通行 INVALID = 4; //无效 } enum SDLinkTypeExtendMask { SDLTE_INVALID = 0; // = 0X00000000 /**< 0X00,无效值 */ SDLTE_PARKING_ENUUTRANCE = 1; // = 0X00000001, /*停车场出入口连接路 */ SDLTE_GAS_STATION_ENUUTRANCE = 2; // = 0X00000002, /*通往加油站的连接路 */ SDLTE_ESCAPE_LANE = 4; // = 0X00000004, /*避险车道 */ SDLTE_TRUCK_LANE = 8; // = 0X00000008, /*货车专用*/ SDLTE_NOTROUNDABOUT = 16; // = 0X00000010, /*非标环岛 */ SDLTE_FRONT_ROAD = 32; // = 0X00000020, /*门前路段*/ SDLTE_FOOTBRIDGE = 64; // = 0X00000040, /*跨线天桥*/ SDLTE_TUNNEL = 128; // = 0X00000080, /*跨线地道 */ SDLTE_FLYOVER = 256; // = 0X00000100, /*立交桥*/ SDLTE_TAXILANE = 512; // = 0X00000200, /*出租车专用道*/ SDLTE_PASSENGERCARLANE = 1024; // = 0X00000400, /*客运车专用道*/ SDLTE_PANSHANROAD = 2048; // = 0X00000800, /*盘山路*/ } optional uint64 id = 1; optional double length = 2; //uint: m optional uint64 lane_num = 3; repeated Point points = 4; optional SDRoadClass road_class = 5; repeated uint64 predecessor_section_id_list = 6; repeated uint64 successor_section_id_list = 7; optional uint32 link_type = 8; //与SDLinkTypeMask按位与判断 optional double speed_limit = 9; // uint: m/s optional bool has_toll_station = 10; optional SDDirectionType direction = 11; optional uint32 reverse_lane_count = 12; optional double exp_speed = 13; repeated SDLaneGroupIndex lane_group_idx = 14; optional bool has_junction = 15; optional uint32 link_type_extend = 16; //link的扩展类型,与SDLinkTypeExtendMask按位与判断 } message SDSubPath{ enum PathType { NONE = 0; SPLIT = 2; MERGE = 3; } optional uint64 enter_section_id = 1; // 汇入时为汇入主路的link, 汇出时为汇出主路的link repeated SDSectionInfo sections = 2; optional PathType path_type = 3; } message SDLaneGroupIndex { optional uint64 id = 1; optional double start_range_offset = 2; //uint: m optional double end_range_offset = 3; } message SDRecommendLaneGroup { optional uint64 lane_group_id = 1; repeated SDRecommendLGSegment recommend_lane = 2; //推荐区域车道 repeated SDRecommendLGSegment available_lane= 3; //可通行区域 } message SDRouteInfo { optional string id = 1; optional NaviPosition navi_start = 2; //from currrent section repeated SDSectionInfo mpp_sections = 3; repeated SDSubPath subpaths = 4; repeated SDRecommendLaneGroup recommend_lane_list = 5; //导航推荐车道 repeated uint64 mpp_lanegroup_id_list = 6; //lane_group级别的mpp id列表 } message SDRecommendLGSegment{ optional uint32 start_offset = 1; //车道组开始的位置(相对于langroup起点的距离,单位:m) optional uint32 end_offset = 2; //车道组结束的位置(相对于langroup起点的距离,单位:m) repeated uint32 lane_seqs = 3; //车道序号 optional uint32 lane_num = 4; //车道数 } message SDLaneGroupInfo { optional uint64 id = 1; optional double length = 2; //uint: m repeated uint64 successor_lane_group_ids = 3; repeated uint64 predecessor_lane_group_ids = 4; optional uint32 lane_num = 5; repeated LaneInfo lane_info = 6; repeated SDRecommendLGSegment recommend_lane = 7; //推荐区域车道 repeated SDRecommendLGSegment available_lane= 8; //可通行区域 } enum SpeedLimitMode{ passive_mode = 0x0; fusion_mode = 0x1; map_mode = 0x2; vision_mode = 0x3; } enum NormalSpeedStatus{ NORMAL = 0x0; UNKNOWN_LIMIT_SPEED = 0x1; UNLIMITED = 0x2; SPL_CANCELLED = 0x3; NO_DISPLAY = 0x4; } enum UnknownLimitStatus{ INVALID = 0x0; VALID = 0x1; UNCLEAR = 0x2; PRESERVE = 0x3; } enum ConditionType{ UNSPECIFIED = 0; TIME_CONDITION = 1; RAIN_CONDITION = 2; SNOW_CONDITION = 3; } message ConditionLimit{ optional float condition_limit_speed_value = 1; optional uint32 condition_type = 2; } message FusionSpeedInfo{ optional basic.Header header = 1; optional float speed_value = 2; optional uint32 normal_speed_status = 3; optional uint32 unknown_limit_status = 4; optional uint32 speed_limit_mode = 5; optional bool time_condition = 6; optional bool snow_condition = 7; optional bool rain_condition = 8; optional bool distance_condition = 9; repeated ConditionLimit condition_limit = 10; } message SensorStatusInfo{ optional uint32 sensor_status = 1; optional uint64 special_type = 2; } message RoutingMap { enum MapType { UNKOWN_MAP = 0; PERCEPTION_MAP = 1; HD_MAP = 2; BEV_MAP = 3; } optional basic.Header header = 1; optional MapInfo map_info = 2; optional MapType map_type = 3; repeated LaneInfo lanes = 4; repeated LaneBoundaryInfo lane_boundaries = 5; repeated RoadBoundaryInfo road_boundaries = 6; repeated StopLineInfo stop_lines = 7; repeated JunctionInfo junctions = 8; repeated CrossWalkInfo cross_walks = 9; optional RouteInfo route = 10; optional RoadClass cur_road_class = 11; repeated TrafficLightInfo traffic_lights = 12; repeated ArrowInfo arrows = 13; optional bool is_on_highway = 14; repeated byd.msg.basic.Point2D nodes = 15; optional EnvInfo env_info = 16; optional SDRouteInfo sd_route = 17; repeated SDLaneGroupInfo sd_lane_groups = 18; optional FusionSpeedInfo fusionSpeedInfo = 19; optional string debug_info = 20; repeated Trajectory exp_trajectories = 21; optional SensorStatusInfo sensor_status_info = 22; optional TrafficLightStatus traffic_light_uturn = 23; // for env auto_test optional TrafficLightStatus traffic_light_left = 24; // for env auto_test optional TrafficLightStatus traffic_light_straight = 25; // for env auto_test optional TrafficLightStatus traffic_light_right = 26; // for env auto_test } message TrafficLightStatus { optional LightStatus light_status = 1; // 红绿灯颜色 optional LaneInfo.TurnType turn_type = 2; // 红绿灯的转向类型 repeated byd.msg.basic.Point2D stop_line_pts = 3; // 应该在红绿灯前停车的线的位置 optional uint32 traffic_light_num = 4; // 红绿灯倒计时 repeated uint32 lane_ids = 5; // 红绿灯状态对应的lane id optional bool is_navi_light = 6; optional uint64 traffic_obj_id = 7; optional uint64 perception_sequence = 8; optional uint64 stay_prev_counter = 9; optional uint64 invalid_counter = 10; optional LaneInfo.TrafficSetReason traffic_reason = 11; repeated byd.msg.basic.Point2D stop_line_pts_wait = 12; // 应该在红绿灯前停车的线的位置 optional bool stopline_is_virtual = 13; optional double distance_to_stopline = 14; optional bool traffic_match_cloud_file = 15; }; message TrafficLightsE2EInfo { optional basic.Header header = 1; // 里面有seq信息,lane_ids是对应seq地图里面的 repeated TrafficLightStatus traffic_status = 2; // 所有红绿灯状态 optional byd.msg.basic.Point3D pose = 3; // 红绿灯位置 optional TrafficLightStatus traffic_light_uturn = 4; // for env auto_test optional TrafficLightStatus traffic_light_left = 5; // for env auto_test optional TrafficLightStatus traffic_light_straight = 6; // for env auto_test optional TrafficLightStatus traffic_light_right = 7; // for env auto_test repeated TrafficLightInfo traffic_lights = 8; }; 详细解释下接口proto
09-04
内容概要:本文为《科技类企业品牌传播白皮书》,系统阐述了新闻媒体发稿、自媒体博主种草与短视频矩阵覆盖三大核心传播策略,并结合“传声港”平台的AI工具与资源整合能力,提出适配科技企业的品牌传播解决方案。文章深入分析科技企业传播的特殊性,包括受众圈层化、技术复杂性与传播通俗性的矛盾、产品生命周期影响及2024-2025年传播新趋势,强调从“技术输出”向“价值引领”的战略升级。针对三种传播方式,分别从适用场景、操作流程、效果评估、成本效益、风险防控等方面提供详尽指南,并通过平台AI能力实现资源智能匹配、内容精准投放与全链路效果追踪,最终构建“信任—种草—曝光”三位一体的传播闭环。; 适合人群:科技类企业品牌与市场负责人、公关传播从业者、数字营销管理者及初创科技公司创始人;具备一定品牌传播基础,关注效果可量化与AI工具赋能的专业人士。; 使用场景及目标:①制定科技产品全生命周期的品牌传播策略;②优化媒体发稿、KOL合作与短视频运营的资源配置与ROI;③借助AI平台实现传播内容的精准触达、效果监测与风险控制;④提升品牌在技术可信度、用户信任与市场影响力方面的综合竞争力。; 阅读建议:建议结合传声港平台的实际工具模块(如AI选媒、达人匹配、数据驾驶舱)进行对照阅读,重点关注各阶段的标准化流程与数据指标基准,将理论策略与平台实操深度融合,推动品牌传播从经验驱动转向数据与工具双驱动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值